Cześć, dzień dobry,
na początku dziękuję wszystkim za tyle rzeczy, które znalazłem na forum i mega mi pomogły. Jednak dotarłem do ściany, której chwilowo nie mogę przeskoczyć. Mam taki kod jak poniżej
SELECT
tw_Symbol [Symbol towaru],
tw_Nazwa [Nazwa towaru],
SUM (ob_Ilosc) [Ilość],
MAX(st_Stan) [Stan],
SUM (ob_WartNetto) [Netto],
SUM (ob_WartVat) [Vat],
SUM (ob_WartBrutto) [Brutto]
FROM dok_Pozycja
join dok__Dokument ON ob_DokHanId = dok_Id
join tw__Towar ON ob_TowId = tw_Id
join tw_Stan on tw_Id = st_TowId and st_MagId = dok_MagId
SELECT
tw_Symbol [Symbol towaru],
tw_Nazwa [Nazwa towaru],
SUM (ob_Ilosc) [Ilość],
MAX(st_Stan) [Stan],
SUM (ob_WartNetto) [Netto],
SUM (ob_WartVat) [Vat],
SUM (ob_WartBrutto) [Brutto]
FROM dok_Pozycja
join dok__Dokument ON ob_DokHanId = dok_Id
join tw__Towar ON ob_TowId = tw_Id
join tw_Stan on tw_Id = st_TowId and st_MagId = dok_MagId
WHERE (dok__Dokument.dok_Typ IN({CHL:faktura sprzedaży#2#paragon#21#korekta#6#:Typ dokumentu:2,21,6:Faktura sprzedaży, Paragon,Korekta}))
and dok_Status =1
and dok_DataWyst BETWEEN {DR:Data:2011-01-01:2011-12-31}
and dok_MagId IN ({CHL_DB: SELECT mag_Id, mag_Nazwa FROM sl_Magazyn :Magazyn})
and (dok__Dokument.dok_KatId IN ({CHL_DB: SELECT kat_Id, kat_Nazwa FROM sl_Kategoria:Kategoria}))
GROUP BY tw_Symbol, tw_Nazwa
and dok_Status =1
and dok_DataWyst BETWEEN {DR:Data:2020-01-01:2020-01-31}
and dok_MagId IN ({CHL_DB: SELECT mag_Id, mag_Nazwa FROM sl_Magazyn :Magazyn})
and (dok__Dokument.dok_KatId IN ({CHL_DB: SELECT kat_Id, kat_Nazwa FROM sl_Kategoria:Kategoria}))
GROUP BY tw_Symbol, tw_Nazwa
I niby wszystko dobrze działa, podaje ilość sprzedanych towarów i aktualny stan magazynowy. Tutaj jednak pojawia się problem, mianowicie ilość towarów nie zgadza się z opcją dla danego produktu, mianowicie klikam informator -> sprzedaż, zaznaczam identyczny okres czasu np. styczeń jak dla zapytania i różnica w sprzedanych sztukach to często 30-50%.
Dodam, że w wbudowanych w subiekt zestawieniach jest to liczone poprawnie, mianowicie ilość sprzedanych = to co w informatorze. Dlaczego w tym sql tak nie jest? Bardzo proszę o podpowiedź.