Wczoraj wieczorkiem trochę posiedziałem i napisałem taki kod:
Kod: Zaznacz cały
SELECT
1 As Lp,
Numer = cdn.NumerDokumentu(cdn.DokMapTypDokumentu(ZaN_GIDTyp, ZaN_ZamTyp, ZaN_Rodzaj), 0, 0, ZaN_ZamNumer, ZaN_ZamRok, ZaN_ZamSeria, 0),
Klient = Knt_Akronim,
Lp = ZaE_Pozycja,
Kod = Twr_Kod,
JM = Twr_Jm,
Ilość_zamówiona = ZaE_Ilosc,
Ilość_do_realizacji = SUM(Rez_Ilosc - Rez_Zrealizowano)
FROM cdn.ZamNag
INNER JOIN cdn.KntKarty ON Knt_GIDNumer = ZaN_KntNumer
INNER JOIN cdn.ZamElem ON ZaE_GIDTyp = ZaN_GIDTyp AND ZaE_GIDNumer = ZaN_GIDNumer
INNER JOIN cdn.TwrKarty ON Twr_GIDNumer = ZaE_TwrNumer
INNER JOIN cdn.Rezerwacje ON Rez_ZrdTyp = ZaE_GIDTyp AND Rez_ZrdNumer = ZaE_GIDNumer AND Rez_ZrdLp = ZaE_GIDLp
WHERE
ZaN_Stan <= 5 and Zan_KntNumer = {Knt_GIDNumer}
GROUP BY cdn.NumerDokumentu(cdn.DokMapTypDokumentu(ZaN_GIDTyp, ZaN_ZamTyp, ZaN_Rodzaj), 0, 0, ZaN_ZamNumer, ZaN_ZamRok, ZaN_ZamSeria, 0), Knt_Akronim, ZaE_Pozycja, Twr_Kod, Twr_Jm, ZaE_Ilosc, ZaN_ZamRok, ZaN_ZamNumer
ORDER BY ZaN_ZamRok, ZaN_ZamNumer
U mnie działa prawidłowo, pokazuje pozycje z zamówień które nie zostały w pełni zrealizowane. Oczywiście nie są brane pod uwagę zamówienia niepotwierdzone. ZaN_Stan <=5 właściwie jest niepotrzebne, ale zostawiłem, aby było widoczne jakich zamówień dotyczy zapytanie.
No i jeszcze sprawa błędów w systemie - czasami, głównie przy korektach zamówień, powstają błędy na zamówieniach: ilość do zrealizowania nie jest równa ilości zamówionej - ilość zrealizowana. Sytuacja zdarza się sporadycznie, ale trzeba mieć świadomość, że wyniki nie są w 100% prawdziwe.