Zestawienie wg kontrahentów

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

Moderator: mikey

VIkking
Posty: 175
Rejestracja: 20 paź 2021, 14:28
Rola: Administrator CDN XL
Wersja: 2022
Kontakt:

Zestawienie wg kontrahentów

Post autor: VIkking »

Witam,

mam kod:

Kod: Zaznacz cały

SELECT 
lp=1,
	k1.Knt_Akronim AS 'Akronim kontrahenta', 
	k1.Knt_Nazwa1 AS 'Nazwa kontrahenta',
	sum(TrE_KsiegowaNetto) as 'Sprzedaż netto PLN',
	sum(TrE_KosztKsiegowy) as KosztKsiegowy,
                SUM(tre_ksiegowanetto)-sum(TrE_KosztKsiegowy) AS 'Marża',
	CASE WHEN SUM(tre_ksiegowanetto) != 0 THEN
	CASE WHEN sum(TrE_KosztKsiegowy) < SUM(tre_ksiegowanetto) THEN 
                                str((round( (sum(tre_ksiegowanetto)-SUM(tre_kosztksiegowy))/SUM(tre_ksiegowanetto),2)*100), 3,0) + ' %' 
                 ELSE '' END ELSE ''
				 END
				 AS 'Marża %',
	case when k1.Knt_AkwTyp = 944 then (select concat(Prc_Nazwisko, ' ', Prc_Imie1) from cdn.PrcKarty where Prc_GIDNumer = k1.Knt_AkwNumer)
		when k1.Knt_AkwTyp = 32 then k2.Knt_Akronim
		else '' end as Akwizytor,
	concat(Prc_Nazwisko, ' ', Prc_Imie1) as Opiekun

FROM cdn.tranag 
	JOIN cdn.KntKarty k1 on k1.Knt_GIDNumer=TrN_KntNumer
	join cdn.TraElem on TrN_GIDTyp=TrE_GIDTyp AND TrN_GIDNumer=TrE_GIDNumer
	JOIN cdn.TwrKarty ON Twr_GIDNumer=TrE_TwrNumer
	JOIN cdn.TwrGrupy ON Twr_GIDTyp=TwG_GIDTyp AND Twr_GIDNumer=TwG_GIDNumer
	left JOIN cdn.KntKarty k2 on k2.Knt_GIDNumer=k1.Knt_AkwNumer
	left join cdn.KntOpiekun on KtO_KntNumer=k1.Knt_GIDNumer and KtO_KntTyp=k1.Knt_GIDTyp
	left join cdn.PrcKarty on Prc_GIDNumer=KtO_PrcNumer


WHERE 
	trn_aktywny = 0
	and trn_trnlp = 127
	and trn_trntyp <> 12	
	and trn_trntyp <> 13
	and TrN_GIDTyp in (2033,2041,2037,2045)
	and trn_spityp <> 0	

	and ((??okres = 1 and TrN_TrNRok = ??rok)
		or (??okres = 2 and TrN_TrNRok = ??rok 
			and ((??kwartal = 1 and TrN_TrNMiesiac in (1, 2, 3))
				or (??kwartal = 2 and TrN_TrNMiesiac in (4, 5, 6))
				or (??kwartal = 3 and TrN_TrNMiesiac in (7, 8, 9))
				or (??kwartal = 4 and TrN_TrNMiesiac in (10, 11, 12))))
		or (??okres = 3 and TrN_TrNRok = ??rok and TrN_TrNMiesiac = ??miesiac)
		or (??okres = 4 and TrN_Data2 between ??dataOD and ??dataDO))

	and TrN_Stan >= 3
	and (??wgGrupyTow = 0 or (??wgGrupyTow = 1 and TwG_GidNumer in (select TwL_GIDNumer from cdn.TwrLinki where TwL_GrONumer = ??grupaTowarowa)))

	and (??wgAkwizytora = 0 or (??wgAkwizytora =1 and ((??akwTyp = 1 and k1.Knt_GIDNumer in (SELECT Knt_GIDNumer FROM cdn.KntKarty WHERE Knt_AkwNumer=??akwizytorPrac and Knt_AkwTyp = 944))
		or (??akwTyp = 2 and k1.Knt_GIDNumer in (SELECT Knt_GIDNumer FROM cdn.KntKarty WHERE Knt_AkwNumer=??akwizytorKnt and Knt_AkwTyp = 32)))))
	
group by
k1.knt_akronim, k1.Knt_Nazwa1,  k1.Knt_AkwTyp, k1.Knt_AkwNumer, k2.Knt_Akronim, Prc_Nazwisko,  Prc_Imie1
order by 'Sprzedaż netto PLN' desc

@PAR ?@O(Rok:1|Kwartał:2|Miesiąc:3|Zakres dat:4)|okres|Podsumowanie sprzedaży za:REG=1 @? @MSG(Wybrany okres raportowania) @TIP(Wybrany okres raportowania) PAR@

@PAR ?@R(select TrN_TrNRok as ID, TrN_TrNRok as Rok from cdn.TraNag
			where
				(TrN_GIDTyp in (2034, 2042) or
				(TrN_GIDTyp in (2033, 2041) and TrN_SpiTyp in (2033, 2041) ) or
				(TrN_GIDTyp in (2037, 2045) and TrN_SpiTyp in (2037, 2045) ) or
				(TrN_GIDTyp in (2001, 2009, 2005, 2013) and TrN_SpiTyp <>0))
		group by TrN_TrNRok)|rok|Rok:2021 @? @H(??okres = 4) @TIP(Wybierz rok) PAR@

@PAR ?@R(SELECT 1 AS Id, 'I kwartał' AS Kod UNION 
		SELECT 2, 'II kwartał' UNION 
		SELECT 3, 'III kwartał' UNION 
		SELECT 4, 'IV kwartał')|kwartal|Kwartał:REG=I kwartał @? @H(??okres <> 2) PAR@

@PAR ?@R(SELECT 1 AS Id, 'Styczeń' AS Kod UNION 
		SELECT 2, 'Luty' UNION 
		SELECT 3, 'Marzec' UNION 
		SELECT 4, 'Kwiecień' UNION 
		SELECT 5, 'Maj' UNION 
		SELECT 6, 'Czerwiec' UNION 
		SELECT 7, 'Lipiec' UNION 
		SELECT 8, 'Sierpień' UNION 
		SELECT 9, 'Wrzesień' UNION 
		SELECT 10,  'Październik' UNION 
		SELECT 11, 'Listopad' UNION 
		SELECT 12, 'Grudzień')|miesiac|Miesiąc:REG=Styczeń @? @H(??okres <> 3) PAR@

@PAR ?@D17|dataOD|Data od:REG=80358 @? @H(??okres <> 4) PAR@
@PAR ?@D17|dataDO|Data do:REG=80722 @? @H(??okres <> 4) PAR@

@PAR ?@X|wgGrupyTow|Wg grupy towarowej:REG=0 @? PAR@
@PAR ?@LS20(SELECT TwG_GIDNumer,TwG_Kod AS 'Nazwa grupy' FROM cdn.TwrGrupy
			WHERE TwG_GIDTyp = -16|GENERICLOOKUP(Grupy Towarowe, 0, 1))|grupaTowarowa|Grupa towarowa:REG=Grupa Główna @? @H({??wgGrupyTow = 0}) PAR@

@PAR ?@X|wgAkwizytora|Wg akwizytora:REG=0 @? PAR@
@PAR ?@O(Z listy pracowników:1|Z listy kontrahentów:2)|akwTyp|Typ akwizytora:REG=1 @? @H(??wgAkwizytora = 0) PAR@
@PAR ?@LS20(SELECT Prc_gidnumer, CONCAT(Prc_nazwisko, ' ', Prc_Imie1) as Nazwa FROM cdn.Prckarty
			WHERE Prc_GIDNumer in (select knt_AkwNumer from cdn.KntKarty where (Knt_AkwNumer <> 0 and Knt_AkwTyp = 944))
			order by Nazwa asc|GENERICLOOKUP(Akwizytorzy z listy pracowników, 0, 1))|akwizytorPrac|Akwizytor:REG=JAROSZUK MAREK @? @H({(??wgAkwizytora = 0) or (??akwTyp = 2)}) PAR@
@PAR ?@LS20(SELECT knt_gidnumer, knt_akronim AS Nazwa FROM cdn.kntkarty
			WHERE Knt_GIDNumer in (select knt_AkwNumer from cdn.KntKarty where (Knt_AkwNumer <> 0 and Knt_AkwTyp = 32))
			order by Nazwa asc|GENERICLOOKUP(Akwizytorzy z listy kontrahentów, 0, 1))|akwizytorKnt|Akwizytor:REG=WIN-UP OPOLSKI @? @H((??wgAkwizytora = 0) or (??akwTyp = 1)) PAR@
potrzebuję dodać do Niego parametr wg. kontrahentów. -> Tak aby wyszukiwał mi z listy rozwijalnej albo otwierał okno kontrahentów wartość sprzedaży. Słabo czuje tego EPR XL odnośnie parametrów dlatego proszę o pomoc.

Awatar użytkownika
praiser
Posty: 685
Rejestracja: 02 lip 2014, 12:22
Rola: Handlowiec CDN XL
Wersja: 2023

Re: Zestawienie wg kontrahentów

Post autor: praiser »

wykorzystaj bibliotekę. lepsze niż rozwijana lista

@PAR ?@LS20(CDN_KNT.DLL|CALLLOOKUPKNTLISTAGRUP())|Klient|&Klient:REG= @? PAR@

Takie rzeczy podpowiada *wizard* parametru
Clipboard01.jpg
--------------------------------
Pozdrawiam
WW

ODPOWIEDZ