FS + zapisy kasowe/bankowe

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

Moderator: mikey

Jaras
Posty: 250
Rejestracja: 29 paź 2010, 13:08
Rola: Użytkownik CDN XL
Wersja: 9.6

FS + zapisy kasowe/bankowe

Post autor: Jaras »

Witam, piszę zapytanie które zwróci mi listę FS i wpłat kasowych/bankowych do danej FS, lecz mam za mało wyników z zapytania.
Czy może ktoś bardziej doświadczony zerknąć na złączenie?

Kod: Zaznacz cały

FROM CDN.TraNag
INNER JOIN CDN.TraPlat ON TrP_GIDTyp=TrN_GIDTyp AND TrP_GIDNumer=TrN_GIDNumer and TrP_GIDTyp = 2033
INNER JOIN CDN.Rozliczenia ON R2_Dok1Typ=TrP_GIDTyp AND R2_Dok1Numer=TrP_GIDNumer AND R2_Dok1Lp=TrP_GIDLp
INNER JOIN CDN.Zapisy ON KAZ_GIDNumer=R2_Dok2Numer and KAZ_GIDTyp = 784

xtomi
Posty: 408
Rejestracja: 16 lut 2010, 21:24
Rola: Administrator CDN XL
Wersja: 10

Re: FS + zapisy kasowe/bankowe

Post autor: xtomi »

Zamień join'a do cdn.rozliczenia na takie zapytanie

Kod: Zaznacz cały

 (SELECT 
					R2_Dok1Typ dok_typ,
					R2_Dok1Numer dok_numer,
					R2_Dok2Typ ddtyp,
					R2_Dok2Numer ddnumer,
					R2_Dok2Lp ddlp,
					R2_DataRozrachunku, 
					R2_KwotaSys, 
					R2_KwotaWal1, 
					R2_KwotaWal2, 
					R2_Waluta1 AS R2_Waluta
				FROM CDN.Rozliczenia				
			  	UNION ALL 
				SELECT  
					 R2_Dok2Typ dok_typ,
					R2_Dok2Numer dok_numer,
					R2_Dok1Typ ddtyp,
					R2_Dok1Numer ddnumer,
					R2_Dok1Lp ddlp,
					R2_DataRozrachunku, 
					R2_KwotaSys, 
					R2_KwotaWal1, 
					R2_KwotaWal2, 
					R2_Waluta2 AS R2_Waluta
				FROM CDN.Rozliczenia
			  	) AS ROZ 
					ON TrP_GIDTyp=dok_typ AND TrP_GIDNumer=dok_numer

Jaras
Posty: 250
Rejestracja: 29 paź 2010, 13:08
Rola: Użytkownik CDN XL
Wersja: 9.6

Re: FS + zapisy kasowe/bankowe

Post autor: Jaras »

Jak połączyć to zapytanie z CDN.Zapisy?
Łącząc po numerach czasem przypisuje wynagrodzenie do FS.

xtomi
Posty: 408
Rejestracja: 16 lut 2010, 21:24
Rola: Administrator CDN XL
Wersja: 10

Re: FS + zapisy kasowe/bankowe

Post autor: xtomi »

Nie wszystkie typy rozliczeń są obsłużone, ale na podstawie tego można sobie dopisać resztę, można też trochę zoptymalizować :)

Kod: Zaznacz cały

select 
CDN.NumerDokumentuTRN(trn_gidtyp,trn_spityp,trn_trntyp,trn_trnnumer,trn_trnrok,trn_trnseria) nrDok
,TrP_GIDLp
,TrN_NettoR
,(TrN_NettoR+TrN_VatR) brutto
,TrP_FormaNazwa
,TrP_Kwota
,TrP_Waluta
,TrP_KwotaSys
,TrP_KursL/TrP_KursM kurs
,TrN_Data2
,case when ddtyp=784 then
(select 
CDN.NumerDokumentu(KAZ_GIDTyp,0,0,KRP_Numer,kaz_rok,kaz_seria,KAZ_KRPLp)+' ('+KAZ_NumerDokumentu+')'
 from CDN.Zapisy 
join CDN.Raporty on KRP_GIDNumer=KAZ_KRPNumer and KAZ_KRPTyp=800

where KAZ_GIDTyp=ddtyp AND KAZ_GIDNumer=ddnumer AND KAZ_GIDLp=ddlp 
)

else 
(select CDN.NumerDokumentuTRN(trn_gidtyp,trn_spityp,trn_trntyp,trn_trnnumer,trn_trnrok,trn_trnseria)from CDN.TraNag
	where TrN_GIDTyp=ddtyp and TrN_GIDNumer=ddnumer )
end
,R2_KwotaSys
,r2_datarozrachunku
--,(select KAZ_NumerDokumentu from CDN.Zapisy where KAZ_GIDNumer=R2_Dok2Numer and KAZ_GIDTyp=R2_Dok2Typ and KAZ_GIDLp=R2_Dok2Lp) zapis
 from CDN.TraNag

join CDN.TraPlat on TrN_GIDTyp=TrP_GIDTyp AND TrN_GIDNumer=TrP_GIDNumer
--join CDN.Rozliczenia on TrP_GIDTyp=R2_Dok1Typ AND TrP_GIDNumer=R2_Dok1Numer and TrP_GIDLp=R2_Dok1Lp

 join  (SELECT 
					R2_Dok1Typ dok_typ,
					R2_Dok1Numer dok_numer,
					R2_Dok2Typ ddtyp,
					R2_Dok2Numer ddnumer,
					R2_Dok2Lp ddlp,
					R2_DataRozrachunku, 
					R2_KwotaSys, 
					R2_KwotaWal1, 
					R2_KwotaWal2, 
					R2_Waluta1 AS R2_Waluta
				FROM CDN.Rozliczenia				
			  	UNION ALL 
				SELECT  
					 R2_Dok2Typ dok_typ,
					R2_Dok2Numer dok_numer,
					R2_Dok1Typ ddtyp,
					R2_Dok1Numer ddnumer,
					R2_Dok1Lp ddlp,
					R2_DataRozrachunku, 
					R2_KwotaSys, 
					R2_KwotaWal1, 
					R2_KwotaWal2, 
					R2_Waluta2 AS R2_Waluta
				FROM CDN.Rozliczenia
			  	) AS ROZ 
					ON TrP_GIDTyp=dok_typ AND TrP_GIDNumer=dok_numer-- and TrP_GIDLp=R2_Dok1Lp


 where  --TrP_GIDLp=R2_Dok1Lp and  R2_Dok1Typ<>784 AND R2_Dok1Typ<>0 AND R2_Dok1Typ<>435 and TrP_KntTyp = 32 AND TrP_KntNumer = 17348 AND TrP_Rozliczona = 1 AND (TRP_Waluta='PLN' AND TRP_GIDTyp<>434 AND (TRP_KntTyp<>944 OR TRP_GIDTyp IN (2977,2976)))
 (TrN_GIDTyp=2033)

Jaras
Posty: 250
Rejestracja: 29 paź 2010, 13:08
Rola: Użytkownik CDN XL
Wersja: 9.6

Re: FS + zapisy kasowe/bankowe

Post autor: Jaras »

Dzięki za pomoc, zaraz biorę się do modyfikacji.

ODPOWIEDZ