CENY z Karty Towaru + Pivot

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

Moderator: mikey

Gcis
Posty: 18
Rejestracja: 07 mar 2013, 13:51
Rola: Administrator CDN XL
Wersja: 2016

CENY z Karty Towaru + Pivot

Post autor: Gcis »

Witam

Koledzy jestem nowy w temacie SQL prosił bym o pomoc w dostawieniu Pivota do tego zapytania

Potrzebuje przedstawić ceny z karty towaru w wierszach





SELECT 1 as [1]

, CDN.TwrKarty.Twr_Kod [KOD]
, TwG_Kod [GRUPA]
, CDN.TwrKarty.Twr_Katalog [SYMBOL]
, CDN.TwrKarty.Twr_Nazwa [NAZWA]
, CDN.TwrKarty.Twr_Jm [JM]
, CDN.TwrKarty.Twr_Atrybut3 [KOD PRODUCENTA ]
, CDN.TwrKarty.Twr_Wartosc3 [nr prod]
, CDN.TwrKarty.Twr_Ean [EAN]
, ope_nazwisko
, TwC_TwrLp
, TwC_Wartosc



FROM CDN.TwrKarty

INNER JOIN CDN.TwrCeny ON TwrCeny.TwC_TwrNumer = TwrKarty.Twr_GIDNumer
INNER JOIN CDN.TwrGrupyDom ON CDN.TwrKarty.Twr_GIDTyp = CDN.TwrGrupyDom.TGD_GIDTyp AND CDN.TwrKarty.Twr_GIDNumer = CDN.TwrGrupyDom.TGD_GIDNumer
INNER JOIN CDN.TwrGrupy ON CDN.TwrGrupyDom.TGD_GrOTyp = CDN.TwrGrupy.TwG_GIDTyp AND CDN.TwrGrupyDom.TGD_GrONumer = CDN.TwrGrupy.TwG_GIDNumer
left join cdn.opekarty s on Twr_OpeTyp=s.ope_gidtyp and Twr_OpeNumer =s.ope_gidnumer
INNER JOIN CDN.TwrOpisy ON CDN.TwrKarty.Twr_GIDNumer = CDN.TwrOpisy.TwO_TwrNumer


where (TwC_TwrLp in (1,2,3,4,5,6)) and( Twr_RodzajId = 1296) ;

rafalt
Posty: 16
Rejestracja: 04 mar 2009, 08:17
Rola: Administrator CDN XL
Wersja: 2015
Lokalizacja: Tarnów

Re: CENY z Karty Towaru + Pivot

Post autor: rafalt »

Myślę że Pivot na razie nie potrzebny.
Pozdrawiam

Kod: Zaznacz cały

SELECT 1 as [1]

, CDN.TwrKarty.Twr_Kod [KOD]
, TwG_Kod	[GRUPA]
, CDN.TwrKarty.Twr_Katalog	[SYMBOL]
, CDN.TwrKarty.Twr_Nazwa	[NAZWA]
, CDN.TwrKarty.Twr_Jm	[JM]
, CDN.TwrKarty.Twr_Atrybut3 [KOD PRODUCENTA ]
, CDN.TwrKarty.Twr_Wartosc3 [nr prod]
, CDN.TwrKarty.Twr_Ean	[EAN]
, ope_nazwisko 
, ISNULL(C1.TwC_Wartosc,0) as Cena1
, ISNULL(C2.TwC_Wartosc,0) as Cena2
, ISNULL(C3.TwC_Wartosc,0) as Cena3
, ISNULL(C4.TwC_Wartosc,0) as Cena4
, ISNULL(C5.TwC_Wartosc,0) as Cena5
, ISNULL(C6.TwC_Wartosc,0) as Cena6

FROM CDN.TwrKarty 
INNER JOIN CDN.TwrGrupyDom ON CDN.TwrKarty.Twr_GIDTyp = CDN.TwrGrupyDom.TGD_GIDTyp AND CDN.TwrKarty.Twr_GIDNumer = CDN.TwrGrupyDom.TGD_GIDNumer 
INNER JOIN CDN.TwrGrupy ON CDN.TwrGrupyDom.TGD_GrOTyp = CDN.TwrGrupy.TwG_GIDTyp AND CDN.TwrGrupyDom.TGD_GrONumer = CDN.TwrGrupy.TwG_GIDNumer
left join cdn.opekarty s on Twr_OpeTyp=s.ope_gidtyp and Twr_OpeNumer =s.ope_gidnumer
INNER JOIN CDN.TwrOpisy ON CDN.TwrKarty.Twr_GIDNumer = CDN.TwrOpisy.TwO_TwrNumer 
LEFT JOIN CDN.TwrCeny C1 ON C1.TwC_TwrNumer = TwrKarty.Twr_GIDNumer AND C1.TwC_TwrLp = 1
LEFT JOIN CDN.TwrCeny C2 ON C2.TwC_TwrNumer = TwrKarty.Twr_GIDNumer AND C2.TwC_TwrLp = 2
LEFT JOIN CDN.TwrCeny C3 ON C3.TwC_TwrNumer = TwrKarty.Twr_GIDNumer AND C3.TwC_TwrLp = 3
LEFT JOIN CDN.TwrCeny C4 ON C4.TwC_TwrNumer = TwrKarty.Twr_GIDNumer AND C4.TwC_TwrLp = 4
LEFT JOIN CDN.TwrCeny C5 ON C5.TwC_TwrNumer = TwrKarty.Twr_GIDNumer AND C5.TwC_TwrLp = 5
LEFT JOIN CDN.TwrCeny C6 ON C6.TwC_TwrNumer = TwrKarty.Twr_GIDNumer AND C6.TwC_TwrLp = 6
where ( Twr_RodzajId = 1296) ; 

Gcis
Posty: 18
Rejestracja: 07 mar 2013, 13:51
Rola: Administrator CDN XL
Wersja: 2016

Re: CENY z Karty Towaru + Pivot

Post autor: Gcis »

Dzięki rafalt

o to mi chodziło

jakoś się zapętliłem na tym pivocie

Działa

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

Re: CENY z Karty Towaru + Pivot

Post autor: xtomi »

Ale przy użyciu pivot nie będzie potrzebne tylko joinow,
warunek in w pivocie najlepiej jest sobie dynamicznie zbudować ale dla kilku kolumn też może być

Kod: Zaznacz cały

select * from (SELECT 1 as [lp]
, CDN.TwrKarty.Twr_Kod [KOD]
, TwG_Kod	[GRUPA]
, CDN.TwrKarty.Twr_Katalog	[SYMBOL]
, CDN.TwrKarty.Twr_Nazwa	[NAZWA]
, CDN.TwrKarty.Twr_Jm	[JM]
, CDN.TwrKarty.Twr_Atrybut3 [KOD PRODUCENTA ]
, CDN.TwrKarty.Twr_Wartosc3 [nr prod]
, CDN.TwrKarty.Twr_Ean	[EAN]
, ope_nazwisko 
, TwC_TwrLp
, TwC_Wartosc 
FROM CDN.TwrKarty 

INNER JOIN CDN.TwrCeny ON TwrCeny.TwC_TwrNumer = TwrKarty.Twr_GIDNumer
INNER JOIN CDN.TwrGrupyDom ON CDN.TwrKarty.Twr_GIDTyp = CDN.TwrGrupyDom.TGD_GIDTyp AND CDN.TwrKarty.Twr_GIDNumer = CDN.TwrGrupyDom.TGD_GIDNumer 
INNER JOIN CDN.TwrGrupy ON CDN.TwrGrupyDom.TGD_GrOTyp = CDN.TwrGrupy.TwG_GIDTyp AND CDN.TwrGrupyDom.TGD_GrONumer = CDN.TwrGrupy.TwG_GIDNumer
left join cdn.opekarty s on Twr_OpeTyp=s.ope_gidtyp and Twr_OpeNumer =s.ope_gidnumer
INNER JOIN CDN.TwrOpisy ON CDN.TwrKarty.Twr_GIDNumer = CDN.TwrOpisy.TwO_TwrNumer 


where (TwC_TwrLp in (1,2,3,4,5,6))and( Twr_RodzajId = 1296) 
)a 
pivot (max(TwC_Wartosc) for twc_twrlp in ([1],[2],[3],[4],[5],[6])
)b

Gcis
Posty: 18
Rejestracja: 07 mar 2013, 13:51
Rola: Administrator CDN XL
Wersja: 2016

Re: CENY z Karty Towaru + Pivot

Post autor: Gcis »

Witam

Dziękuje za wszystkim za pomoc

Xtomi na pewno wykorzystam ten sposób

poległem na tym pivocie

dzieki

ODPOWIEDZ