Cześć!
Chciałem ugryźć temat analizy sprzedaży poszczególnych towarów ilościowo, które są składnikami sprzedanych kompletów. Towary te oprócz tego, że sprzedają się osobno, to sprzedają się w kompletach, analizy sprzedaży ujmują tylko komplet, natomiast nie to, co w nim się znajduje. Samo zmontuj/rozmontuj nie świadczy o sprzedaży, więc ambitnie założyłem zrobić zestawienie dla sprzedaży samych kompletów. Założenie było takie, żeby listowała się nazwa kompletu tyle razy ile jest składników, a przy niej poszczególne składniki. Engine oparłem o zestawienie sprzedaż według asortymentu, ale później wymiękłem, SQL mnie zagiął. Zanim uda mi się na to spojrzeć świeżym okiem może ktoś coś podpowie lub wskaże inną drogę do uzyskania wyniku?
Moje zestawienie, które nie działa:
SELECT ob_TowRodzaj AS tw_Rodzaj,
tw_Id,
a.tw_Nazwa,
a.tw_Symbol,
grt_Nazwa,
(
SELECT b.tw_symbol, b.tw_Nazwa FROM tw_Komplet
RIGHT JOIN tw__Towar as B ON kpl_IdSkladnik = tw_Id
where kpl_IdKomplet=A.tw_Id
) AS Skladnik,
SUM(ob_IloscMag * ob_Znak) as ob_IloscMagPdst,
a.tw_JednMiary
FROM vwZstSprzWgKhnt
INNER JOIN tw__Towar as A ON ob_TowId = tw_Id
INNER JOIN sl_GrupaTw ON tw_IdGrupa = grt_Id WHERE dok_Status<>2 AND (( (dok_DataWyst>='20150101') AND (dok_DataWyst<='20151231') ) AND (dbo.fnMAKE_DOKPARAM(dok_Typ, dok_Podtyp) IN (131072,131075, 131077,131074,4063232,262144,393216,393217,4390912,4390913,1376256,1376258,1376257,1376259,917504,917505)) AND (dok_MagId IN (2, 3, 4, 5, 6, 10, 8, 9, 13, 1, 11, 12))) AND ob_TowRodzaj & 8 > 0
GROUP BY ob_TowRodzaj, tw_Id, tw_Nazwa, tw_Symbol, grt_Nazwa,tw_JednMiary;