Wykres SQL

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

Moderator: mikey

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

Wykres SQL

Post autor: VIkking »

Kod: Zaznacz cały

SELECT
lp=1,
	k1.Knt_Akronim AS 'Akronim kontrahenta', 
	k1.Knt_Nazwa1 AS 'Nazwa kontrahenta',
n1.TRN_DOKUMENTOBCY AS 'NUMER FAKTURY',
	SUM(TrE_KsiegowaNetto) as 'Sprzedaż netto PLN',
	sum(TrE_KosztKsiegowy) as 'Koszt Ksiegowy',    
 SUM(tre_ksiegowanetto)-sum(TrE_KosztKsiegowy) AS 'Marża',
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 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(p2.Prc_Nazwisko, ' ', p2.Prc_Imie1) as Opiekun


	--sum(TrE_KosztKsiegowy) as KosztKsiegowy,
--				TrE_KsiegowaNetto as 'Sprzedaż netto PLN',
--				TrE_KosztKsiegowy as KosztKsiegowy,
           
--							tre_ksiegowanetto-TrE_KosztKsiegowy AS 'Marża',
	
--	CASE WHEN TrE_KosztKsiegowy < tre_ksiegowanetto THEN 
--                                str((round( (tre_ksiegowanetto-tre_kosztksiegowy)/tre_ksiegowanetto,2)*100), 3,0) + ' %' 
--                 ELSE '' END AS 'Marża %',




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


WHERE 
	n1.trn_aktywny = 0
	and n1.trn_trnlp = 127
	and n1.trn_trntyp <> 12	
	and n1.trn_trntyp <> 13
	and n1.TrN_GIDTyp in (2033,2041,2037,2045)
	and n1.trn_spityp <> 0
	and ((??okres = 1 and n1.TrN_TrNRok = ??rok)
		or (??okres = 2 and n1.TrN_TrNRok = ??rok 
			and ((??kwartal = 1 and n1.TrN_TrNMiesiac in (1, 2, 3))
				or (??kwartal = 2 and n1.TrN_TrNMiesiac in (4, 5, 6))
				or (??kwartal = 3 and n1.TrN_TrNMiesiac in (7, 8, 9))
				or (??kwartal = 4 and n1.TrN_TrNMiesiac in (10, 11, 12))))
		or (??okres = 3 and n1.TrN_TrNRok = ??rok and n1.TrN_TrNMiesiac = ??miesiac)
		or (??okres = 4 and n1.TrN_Data2 between ??dataOD and ??dataDO))	
and n1.TrN_Stan >= 3
{choose (??Drzwi=0,' and 1=1 ', ' and AND cdn.AtrPobierzWartosc(n1.trn_gidtyp, n1.trn_gidnumer, 0, 0, 13, 0) Like '%Drzwi'') }
                {choose (??Okna=0, ' and 1=1', ' and AND cdn.AtrPobierzWartosc(n1.trn_gidtyp, n1.trn_gidnumer, 0, 0, 13, 0) Like '%Okna'') }
               {choose (??Zarzad=0, ' and 1=1', ' and AND cdn.AtrPobierzWartosc(n1.trn_gidtyp, n1.trn_gidnumer, 0, 0, 13, 0) Like '%Zarząd'') }

group by
k1.knt_akronim, k1.Knt_Nazwa1, k1.Knt_AkwTyp, k1.Knt_AkwNumer, k2.Knt_Akronim, p1.Prc_Nazwisko, p1.Prc_Imie1, p2.Prc_Nazwisko, p2.Prc_Imie1,n1.TRN_DOKUMENTOBCY
order by 'Sprzedaż netto PLN' desc


@PAR ?@X|Drzwi|&Drzwi:REG=0 @? PAR@
@PAR ?@X|Okna|&Okna:REG=0 @? PAR@
@PAR ?@X|Zarzad|&Zarzad:REG=0 @? PAR@


@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:2022 @? @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@
co robię nie tak że nie działa mi wyszukiwanie po atrybucie "sekcja choose"?

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

Re: Wykres SQL

Post autor: praiser »

na szybko, zweryfikuj podwójne AND
--------------------------------
Pozdrawiam
WW

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

Re: Wykres SQL

Post autor: VIkking »

Zmieniłem i dalej coś nie trybi

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

Re: Wykres SQL

Post autor: VIkking »

Chyba już wiem co jest nie tak, chyba coś z funkcją cdn.AtrPobierzWartosc. Jak ją wywołać w wykresie?

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

Re: Wykres SQL

Post autor: praiser »

nie ma escape w przypadku apostrofu przy like

powinno być:

Kod: Zaznacz cały

{choose (??Drzwi=0,' and 1=1 ', ' AND cdn.AtrPobierzWartosc(n1.trn_gidtyp, n1.trn_gidnumer, 0, 0, 13, 0) Like ''%Drzwi''') }
{choose (??Okna=0, ' and 1=1', ' AND cdn.AtrPobierzWartosc(n1.trn_gidtyp, n1.trn_gidnumer, 0, 0, 13, 0) Like ''%Okna''') }
{choose (??Zarzad=0, ' and 1=1', ' AND cdn.AtrPobierzWartosc(n1.trn_gidtyp, n1.trn_gidnumer, 0, 0, 13, 0) Like ''%Zarząd''') }
inna sprawa, to czy to ci działa dla kwartałów i miesięcy ? (warunek dla trn_trnmiesiac)
Ostatnio zmieniony 30 sty 2024, 16:52 przez praiser, łącznie zmieniany 1 raz.
--------------------------------
Pozdrawiam
WW

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

Re: Wykres SQL

Post autor: wacek »

Może tak:

Kod: Zaznacz cały

AND
(
(??Drzwi = 0 OR CDN.AtrPobierzWartosc(n1.TrN_GIDTyp, n1.TrN_GIDNumer, 0, 0, 13, 0) LIKE '%Drzwi%')
OR
(??Okna = 0 OR CDN.AtrPobierzWartosc(n1.TrN_GIDTyp, n1.TrN_GIDNumer, 0, 0, 13, 0) LIKE '%Okna%')
OR
(??Zarzad = 0 OR CDN.AtrPobierzWartosc(n1.TrN_GIDTyp, n1.TrN_GIDNumer, 0, 0, 13, 0) LIKE '%Zarząd%')
)
Ostatnio zmieniony 31 sty 2024, 12:05 przez wacek, łącznie zmieniany 1 raz.
Pozdrawiam,
Robert

select convert(varchar(100),0x637a6173616d69207069737aea2074752067b375706f7479203a29)

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

Re: Wykres SQL

Post autor: VIkking »

praiser pisze:
30 sty 2024, 15:05
nie ma escape w przypadku apostrofu przy like

powinno być:

Kod: Zaznacz cały

{choose (??Drzwi=0,' and 1=1 ', ' AND cdn.AtrPobierzWartosc(n1.trn_gidtyp, n1.trn_gidnumer, 0, 0, 13, 0) Like ''%Drzwi''') }
{choose (??Okna=0, ' and 1=1', ' AND cdn.AtrPobierzWartosc(n1.trn_gidtyp, n1.trn_gidnumer, 0, 0, 13, 0) Like ''%Okna''') }
{choose (??Zarzad=0, ' and 1=1', ' AND cdn.AtrPobierzWartosc(n1.trn_gidtyp, n1.trn_gidnumer, 0, 0, 13, 0) Like ''%Zarząd''') }
inna sprawa, to czy to ci działa dla kwartałów i miesięcy ? (warunek dla trn_trnmiesiac)
Jak najbardziej działa dla miesięcy i kwartałów.
Dzięki poszło to co napisałeś.

ODPOWIEDZ