raport stan magazynu na dzień

Zapytania SQL, widoki, Crystal, definicje filtrów, szybkich raportów, wydruków, API, Hydra, .NET

Moderator: mikey

Awatar użytkownika
wojtek
Posty: 359
Rejestracja: 14 gru 2007, 12:23
Rola: Administrator CDN XL
Wersja: 9.8
Lokalizacja: pomorskie

raport stan magazynu na dzień

Post autor: wojtek »

Witam

Czy ktoś posiada taki raport ?

pozdrawiam
wojtek

Awatar użytkownika
wacek
Posty: 709
Rejestracja: 27 paź 2008, 18:04
Rola: Administrator CDN XL
Lokalizacja: Łódzkie

Re: raport stan magazynu na dzień

Post autor: wacek »

Witam,
czy o to chodzi :)

Kod: Zaznacz cały

@PAR ?@R(select mag_gidnumer, mag_kod from cdn.magazyny)|m|&magazyn: @? PAR@

/* ilosc sprzedaz */
select [1]=1, twr_kod as kod, twr_nazwa as nazwa, isnull(sum(cdn.trsilosc(trs_ilosc,trn_gidtyp,trn_stan,trs_subgidlp)),0) as ilosc_spr from cdn.twrkarty join cdn.traelem on twr_gidnumer=tre_twrnumer join cdn.traselem on trs_gidnumer=tre_gidnumer and trs_gidlp=tre_gidlp and trs_magtyp=208 join cdn.tranag on trn_gidnumer=tre_gidnumer join cdn.magazyny on trs_magtyp=mag_gidtyp and trs_magnumer=mag_gidnumer where twr_typ in (1,2) and mag_gidnumer=??m and trn_datamag<=?@d17|na dzien:{today()} group by twr_kod, twr_nazwa

/* ilosc magazyn */
select [1]=1, twr_kod as kod, twr_nazwa as nazwa, isnull(sum(cdn.masilosc(mas_ilosc,man_trntyp,man_stan)),0) as ilosc_mag from cdn.magnag join cdn.magselem on man_gidnumer=mas_gidnumer join cdn.magazyny on mas_magtyp=mag_gidtyp and mas_magnumer=mag_gidnumer join cdn.twrkarty on twr_gidnumer=mas_twrnumer where twr_typ in (1,2) and mag_gidnumer=??m and man_data3<=?@d17|na dzien:{today()} group by twr_kod, twr_nazwa

/* wartosc */
select [1]=1, twr_kod as kod, twr_nazwa as nazwa, isnull(sum(cdn.trsksiegowa(trs_kosztksiegowy,trs_ilosc,trn_gidtyp,trn_stan,trs_subgidlp,trn_zmodyfikowanozasob)),0) as wartosc from cdn.twrkarty join cdn.traelem on twr_gidnumer=tre_twrnumer join cdn.traselem on trs_gidnumer=tre_gidnumer and trs_gidlp=tre_gidlp and trs_magtyp=208 join cdn.tranag on trn_gidnumer=tre_gidnumer join cdn.magazyny on trs_magtyp=mag_gidtyp and trs_magnumer=mag_gidnumer where twr_typ in (1,2) and mag_gidnumer=??m and trn_datamag<=?@d17|na dzien:{today()} group by twr_kod, twr_nazwa
pozdrawiam
wacek
Pozdrawiam,
Robert

select convert(varchar(100),0x637a6173616d69207069737aea2074752067b375706f7479203a29)

Awatar użytkownika
wojtek
Posty: 359
Rejestracja: 14 gru 2007, 12:23
Rola: Administrator CDN XL
Wersja: 9.8
Lokalizacja: pomorskie

Re: raport stan magazynu na dzień

Post autor: wojtek »

Nie wiem czy do końca o to mi chodziło ponieważ wyskakuje mi błąd, podpiąłem twój kod pod wykres ale dostaję błąd:

Wystąpiła sytuacja wyjątkowa
%SOURCE%=Microsoft OLE DB Provider for SQL Server
%DESCRIPTION%=An insufficient number of arguments were supplied for the procedure or function cdn.trsilosc.

pozdraiam

Awatar użytkownika
wacek
Posty: 709
Rejestracja: 27 paź 2008, 18:04
Rola: Administrator CDN XL
Lokalizacja: Łódzkie

Re: raport stan magazynu na dzień

Post autor: wacek »

Ja mam wersję 6HR6 i u mnie działa, a ty masz 7.1?
Jeżeli 7.1 to spróbuj tak:

-dla ilość sprzedaż

Kod: Zaznacz cały

@PAR ?@R(select mag_gidnumer, mag_kod from cdn.magazyny)|m|&magazyn: @? PAR@

/* ilosc sprzedaz */
select [1]=1, twr_kod as kod, twr_nazwa as nazwa, 
isnull(sum(cdn.trsilosc(trs_ilosc,trn_gidtyp,trn_gidnumer,trs_gidlp,trs_subgidlp,trs_zwrtyp,trn_stan)),0) as ilosc_spr 
from cdn.twrkarty 
join cdn.traelem on twr_gidnumer=tre_twrnumer 
join cdn.traselem on trs_gidnumer=tre_gidnumer and trs_gidlp=tre_gidlp and trs_magtyp=208 
join cdn.tranag on trn_gidnumer=tre_gidnumer 
join cdn.magazyny on trs_magtyp=mag_gidtyp and trs_magnumer=mag_gidnumer 
where twr_typ in (1,2) and mag_gidnumer=??m and trn_datamag<=?@d17|na dzien:{today()} group by twr_kod, twr_nazwa
- dla ilość magazyn

Kod: Zaznacz cały

@PAR ?@R(select mag_gidnumer, mag_kod from cdn.magazyny)|m|&magazyn: @? PAR@

/* ilosc magazyn */
select [1]=1, twr_kod as kod, twr_nazwa as nazwa, 
isnull(sum(cdn.masilosc(mas_ilosc,man_trntyp,man_stan)),0) as ilosc_mag 
from cdn.magnag 
join cdn.magselem on man_gidnumer=mas_gidnumer 
join cdn.magazyny on mas_magtyp=mag_gidtyp and mas_magnumer=mag_gidnumer 
join cdn.twrkarty on twr_gidnumer=mas_twrnumer 
where twr_typ in (1,2) and mag_gidnumer=??m and man_data3<=?@d17|na dzien:{today()} group by twr_kod, twr_nazwa
- dla wartość

Kod: Zaznacz cały

@PAR ?@R(select mag_gidnumer, mag_kod from cdn.magazyny)|m|&magazyn: @? PAR@

/* wartosc */
select [1]=1, twr_kod as kod, twr_nazwa as nazwa, 
isnull(sum(cdn.trsksiegowa(trs_kosztksiegowy,trs_ilosc,trn_gidtyp,trn_gidnumer,trs_gidlp,trs_subgidlp,trs_zwrtyp,trn_stan,trn_zmodyfikowanozasob)),0) as wartosc 
from cdn.twrkarty 
join cdn.traelem on twr_gidnumer=tre_twrnumer 
join cdn.traselem on trs_gidnumer=tre_gidnumer and trs_gidlp=tre_gidlp and trs_magtyp=208 
join cdn.tranag on trn_gidnumer=tre_gidnumer 
join cdn.magazyny on trs_magtyp=mag_gidtyp and trs_magnumer=mag_gidnumer 
where twr_typ in (1,2) and mag_gidnumer=??m and trn_datamag<=?@d17|na dzien:{today()} group by twr_kod, twr_nazwa
pozdrawiam
wacek
Pozdrawiam,
Robert

select convert(varchar(100),0x637a6173616d69207069737aea2074752067b375706f7479203a29)

Awatar użytkownika
wojtek
Posty: 359
Rejestracja: 14 gru 2007, 12:23
Rola: Administrator CDN XL
Wersja: 9.8
Lokalizacja: pomorskie

Re: raport stan magazynu na dzień

Post autor: wojtek »

dzięki za pomoc

troche zmodyfikowałem twój kod dodając sobie min. grupe towarową:

Kod: Zaznacz cały

@PAR ?@R(select mag_gidnumer, mag_kod from cdn.magazyny)|m|&magazyn: @? PAR@

select [1]=1, cdn.TwrGrupaPelnaNazwa(TGD_GrONumer) As Towar_Grupa,twr_kod as kod, twr_nazwa as nazwa, 
isnull(sum(cdn.trsilosc(trs_ilosc,trn_gidtyp,trn_gidnumer,trs_gidlp,trs_subgidlp,trs_zwrtyp,trn_stan)),0) as ilosc_spr,
isnull(sum(cdn.trsksiegowa(trs_kosztksiegowy,trs_ilosc,trn_gidtyp,trn_gidnumer,trs_gidlp,trs_subgidlp,trs_zwrtyp,trn_stan,trn_zmodyfikowanozasob)),0) as wartosc 
from cdn.twrkarty 
join cdn.traelem on twr_gidnumer=tre_twrnumer 
join cdn.traselem on trs_gidnumer=tre_gidnumer and trs_gidlp=tre_gidlp and trs_magtyp=208 
join cdn.tranag on trn_gidnumer=tre_gidnumer 
join cdn.magazyny on trs_magtyp=mag_gidtyp and trs_magnumer=mag_gidnumer 
inner join cdn.TwrGrupyDom G0 ON (Twr_GidTyp=G0.TGD_GidTyp and Twr_GidNumer=G0.TGD_GidNumer)
where twr_typ in (1,2) and mag_gidnumer=??m and trn_datamag<=?@d17|na dzien:{today()} group by TGD_GrONumer,twr_kod, twr_nazwa
próbowałem przerobić to na widok ale w momencie pobierania danych do widoku brakuje mi miejsca na dysku (tempdb) zabiera ponad 18 GB :)

poniżej wklejam kod widoku może ktoś ma ochotę to dalej rozwinąć i uda mu się uzyskać w miarę wydajny widok :)

Kod: Zaznacz cały

ALTER VIEW [CDN].[stannadzien]

AS

select 

cdn.TwrGrupaPelnaNazwa(TGD_GrONumer) As Towar_Grupa,
IsNull(Mag_Kod,'ND') AS Magazyn_Kod,
twr_kod as kod, 
twr_nazwa as nazwa,
convert(datetime,trn_datamag-36163,105) as na_dzien,
ISNULL(SUM(CDN.TrSKsiegowa(TrS_KosztKsiegowy,TrS_Ilosc,TrN_GIDTyp,TrN_GIDNumer,TrS_GIDLp,TrS_SubGIDLp,TrS_ZwrTyp,TrN_Stan,TrN_ZmodyfikowanoZasob)),0) AS Wartosc
from cdn.magnag 
join cdn.magselem on man_gidnumer=mas_gidnumer 
join cdn.magazyny on mas_magtyp=mag_gidtyp and mas_magnumer=mag_gidnumer
join cdn.twrkarty on twr_gidnumer=mas_twrnumer 
join cdn.traelem on twr_gidnumer=tre_twrnumer 
join cdn.traselem on trs_gidnumer=tre_gidnumer and trs_gidlp=tre_gidlp and trs_magtyp=208
join cdn.tranag on trn_gidnumer=tre_gidnumer 
inner join cdn.TwrGrupyDom G0 ON (Twr_GidTyp=G0.TGD_GidTyp and Twr_GidNumer=G0.TGD_GidNumer) 
where twr_typ in (1,2)
group by TGD_GrONumer,twr_kod, twr_nazwa, Mag_Kod,trn_datamag

Awatar użytkownika
wojtek
Posty: 359
Rejestracja: 14 gru 2007, 12:23
Rola: Administrator CDN XL
Wersja: 9.8
Lokalizacja: pomorskie

Re: raport stan magazynu na dzień

Post autor: wojtek »

w dalszym ciągu męczę ten raport :) i staram się uzyskać aby nie pokazywał mi tych towarów dla których stan lub wartość wynosi 0

jakieś pomysły?

pozdrawiam

Awatar użytkownika
wacek
Posty: 709
Rejestracja: 27 paź 2008, 18:04
Rola: Administrator CDN XL
Lokalizacja: Łódzkie

Re: raport stan magazynu na dzień

Post autor: wacek »

Witam

może tak:

zamień

Kod: Zaznacz cały

isnull(sum(cdn.trsksiegowa(trs_kosztksiegowy,trs_ilosc,trn_gidtyp,trn_gidnumer,trs_gidlp,trs_subgidlp,trs_zwrtyp,trn_stan,trn_zmodyfikowanozasob)),0)
isnull(sum(cdn.trsilosc(trs_ilosc,trn_gidtyp,trn_gidnumer,trs_gidlp,trs_subgidlp,trs_zwrtyp,trn_stan)),0)
na

Kod: Zaznacz cały

sum(cdn.trsksiegowa(trs_kosztksiegowy,trs_ilosc,trn_gidtyp,trn_gidnumer,trs_gidlp,trs_subgidlp,trs_zwrtyp,trn_stan,trn_zmodyfikowanozasob))
sum(cdn.trsilosc(trs_ilosc,trn_gidtyp,trn_gidnumer,trs_gidlp,trs_subgidlp,trs_zwrtyp,trn_stan))
i na końcu zapytania daj

Kod: Zaznacz cały

having sum(cdn.trsksiegowa(trs_kosztksiegowy,trs_ilosc,trn_gidtyp,trn_gidnumer,trs_gidlp,trs_subgidlp,trs_zwrtyp,trn_stan,trn_zmodyfikowanozasob))<>0
and sum(cdn.trsilosc(trs_ilosc,trn_gidtyp,trn_gidnumer,trs_gidlp,trs_subgidlp,trs_zwrtyp,trn_stan))<>0
pozdrawiam
wacek
Pozdrawiam,
Robert

select convert(varchar(100),0x637a6173616d69207069737aea2074752067b375706f7479203a29)

Awatar użytkownika
wojtek
Posty: 359
Rejestracja: 14 gru 2007, 12:23
Rola: Administrator CDN XL
Wersja: 9.8
Lokalizacja: pomorskie

Re: raport stan magazynu na dzień

Post autor: wojtek »

dzięki za pomoc, o to mi chodziło

pozdrawiam
wojtek

ODPOWIEDZ