Cześć,
Stworzyłem zapytanie do SQL, które wyciąga sprzedaż produktów z ostatnich 30 dni.
Występuje jednak problem, po dodaniu kolumny 'TWS_IlSpr' cały wynik zapytania jest porozbijany i produkty powtarzają się z ilościami dostępnymi do sprzedaży o dziwnych wartościach (m.in ilości z liczbami po przecinku).
Czy mógłby ktoś wskazać w którym miejscu występuje błąd?
SELECT Twr_Nazwa as 'Nazwa produktu z XL', Twr_MarkaId, Twr_Kod as 'Kod produktu', Twr_Ean as 'EAN', TWS_IlSpr as 'Ilośc dostępna do sprzedaży', ZaE_Ilosc as 'Ilosc sprzedana w 3 dni' FROM CDN.ZamElem
LEFT JOIN CDN.ZamNag ON ZaE_Gidnumer = ZaN_GIDnumer and ZaE_GIDTyp = ZaN_GIDTyp
LEFT JOIN CDN.TwrKarty ON ZaE_TwrNumer = Twr_GIDNumer
LEFT JOIN CDN.Magazyny ON Twr_MagNumer=Mag_GIDNumer
LEFT JOIN CDN.TwrStany ON Mag_GIDNumer=TWS_MagNumer
WHERE Twr_kod!='KW'
and ZaN_DataWystawienia >= datediff(day, '1800-12-28', '2020-01-22') -30
and Mag_GIDNumer=1
and ZaN_Rodzaj=4
and ZaN_ZamTyp=1280
GROUP BY Twr_Kod, Twr_Nazwa, Twr_Ean, Twr_MarkaId, ZaE_Ilosc, TWS_IlSpr
Sprzedaż z ostatnich dni - raport
Moderator: mikey
Re: Sprzedaż z ostatnich dni - raport
TwrStany zawiera stany historyczne czyli osobny wpis dla kazdego dnia w ktorym ilosc roznila sie od dnia poprzedniego
jezeli chcesz stan na obecna chwile to powinienes pobrac je z tabeli TwrZasoby
kolejna rzecz to ze polaczyles tebele twrstany tylko na podstawie magazynow ... brakuje polaczenia po GID towaru
a jezeli juz przy magazynach jestesmy to polaczyles je z karta towaru czyli pokazuje stan na domyslnym magazynie dla danego towaru a nie stan na magazynie z ktorego byla sprzedaz
na wlasnie sprzedaz ... ZamNag to naglowki zamowien a nie sprzedaz zamowienie moze byc nie zrealizowane lub zrealizowane w innej ilosci niz na zamowieniu , mogla byc tez sprzedaz z pominieciem zamowienia
cos mniej wiecej takiego powinno byc
plus ew korekty FV do tego
jezeli chcesz stan na obecna chwile to powinienes pobrac je z tabeli TwrZasoby
kolejna rzecz to ze polaczyles tebele twrstany tylko na podstawie magazynow ... brakuje polaczenia po GID towaru
a jezeli juz przy magazynach jestesmy to polaczyles je z karta towaru czyli pokazuje stan na domyslnym magazynie dla danego towaru a nie stan na magazynie z ktorego byla sprzedaz
na wlasnie sprzedaz ... ZamNag to naglowki zamowien a nie sprzedaz zamowienie moze byc nie zrealizowane lub zrealizowane w innej ilosci niz na zamowieniu , mogla byc tez sprzedaz z pominieciem zamowienia
cos mniej wiecej takiego powinno byc
Kod: Zaznacz cały
Select
towar.Twr_Nazwa As 'Nazwa produktu z XL',
towar.Twr_MarkaId,
towar.Twr_Kod As 'Kod produktu',
towar.Twr_Ean As 'EAN',
(select sum(CDN.TwrZasoby.TwZ_IlSpr) from
CDN.TwrZasoby where towar.Twr_GIDNumer = CDN.TwrZasoby.TwZ_TwrNumer
And magazyn.MaS_MagNumer = CDN.TwrZasoby.TwZ_MagNumer),
Sum(magazyn.MaS_Ilosc)
From
CDN.TraElem Left Join
CDN.TwrKarty towar On towar.Twr_GIDNumer = CDN.TraElem.TrE_TwrNumer Left Join
CDN.MagSElem magazyn On CDN.TraElem.TrE_GIDTyp = magazyn.MaS_ZrdTyp
And CDN.TraElem.TrE_GIDNumer = magazyn.MaS_ZrdNumer
And CDN.TraElem.TrE_GIDLp = magazyn.MaS_ZrdLp Left Join
CDN.TraNag On CDN.TraElem.TrE_GIDNumer = CDN.TraNag.TrN_GIDNumer
And CDN.TraElem.TrE_GIDTyp = CDN.TraNag.TrN_GIDTyp
Where
CDN.TraNag.TrN_GIDTyp In (2033, 2034, 2037) And
magazyn.MaS_MagNumer = 9 And
CDN.TraNag.TrN_Data2 >= DateDiff(day, '1800-12-28', GetDate()) - 30 And
towar.Twr_Kod != 'KW'
Group By
towar.Twr_Nazwa,
towar.Twr_MarkaId,
towar.Twr_Kod,
towar.Twr_Ean,
towar.Twr_GIDNumer,
magazyn.MaS_MagNumer
Order By
towar.Twr_Nazwa
Re: Sprzedaż z ostatnich dni - raport
Dzięki za pomoc.
Wiele nauki jeszcze przede mną
Wiele nauki jeszcze przede mną
Re: Sprzedaż z ostatnich dni - raport
@itheon
W jaki sposób przerobić to z transakcji na zamówienia? Zamówienie u mnie od razu zakłada rezerwację towaru i taki sposób w moim przypadku byłby trochę bardziej efektywniejszy niż czekanie za potwierdzeniem zamówienia i wydrukowaniem paragonu na produkt
Z góry dzięki za pomoc
W jaki sposób przerobić to z transakcji na zamówienia? Zamówienie u mnie od razu zakłada rezerwację towaru i taki sposób w moim przypadku byłby trochę bardziej efektywniejszy niż czekanie za potwierdzeniem zamówienia i wydrukowaniem paragonu na produkt
Z góry dzięki za pomoc
Kod: Zaznacz cały
Select
towar.Twr_Nazwa As 'Nazwa produktu z XL',
SLW_WartoscS As 'Marka',
towar.Twr_Kod As 'Kod produktu',
towar.Twr_Ean As 'EAN',
(select sum(CDN.TwrZasoby.TwZ_IlSpr ) from
CDN.TwrZasoby where towar.Twr_GIDNumer = CDN.TwrZasoby.TwZ_TwrNumer
And magazyn.MaS_MagNumer = CDN.TwrZasoby.TwZ_MagNumer) As "Stan magazynowy",
Sum(magazyn.MaS_Ilosc) As "Ilosc sprzedana w 4 dni"
From CDN.TraElem
Left Join CDN.TwrKarty towar On towar.Twr_GIDNumer = CDN.TraElem.TrE_TwrNumer
Left Join CDN.MagSElem magazyn On CDN.TraElem.TrE_GIDTyp = magazyn.MaS_ZrdTyp
And CDN.TraElem.TrE_GIDNumer = magazyn.MaS_ZrdNumer
And CDN.TraElem.TrE_GIDLp = magazyn.MaS_ZrdLp
Left Join CDN.TraNag On CDN.TraElem.TrE_GIDNumer = CDN.TraNag.TrN_GIDNumer
And CDN.TraElem.TrE_GIDTyp = CDN.TraNag.TrN_GIDTyp
Left join cdn.Slowniki on Twr_MarkaId=SLW_ID
Where
CDN.TraNag.TrN_GIDTyp In (2033, 2034, 2037) And
magazyn.MaS_MagNumer = 1 And
CDN.TraNag.TrN_Data2 >= DateDiff(day, '1800-12-28', GetDate()) - 3 And
towar.Twr_Kod != 'KW'
Group By
towar.Twr_Nazwa,
towar.Twr_Kod,
towar.Twr_Ean,
towar.Twr_GIDNumer,
magazyn.MaS_MagNumer,
SLW_WartoscS
Order BY CASE WHEN SLW_WartoscS IS NULL THEN 1 ELSE 0 END, SLW_WartoscS