Kolumna z marżą na Liscie Towarów
Moderator: mikey
-
- Posty: 28
- Rejestracja: 30 lis 2017, 11:21
- Rola: Użytkownik CDN XL
- Wersja: 2016
Kolumna z marżą na Liscie Towarów
Witam wszystkich, mam pytanko wyrzuciłem sobie na ogólną listę Towarów dodatkowe kolumny z cenami, i chciałbym dodać kolumne z marżą rzeczywistą, ale nie wiem jak napisać filtr SQL macie jakieś pomysły?
-
- Posty: 934
- Rejestracja: 12 sty 2009, 12:03
- Rola: Administrator CDN XL
- Wersja: 2016
- Lokalizacja: Kraków
Re: Kolumna z marżą na Liscie Towarów
Na liście towarów będziesz musiał wyświetlić marżę uśrednioną no bo na pewno zdarzy się, że będziesz miał różne zasoby w różnych cenach.
Czy miałeś styczność z SQL-em już ?
Czy miałeś styczność z SQL-em już ?
-
- Posty: 28
- Rejestracja: 30 lis 2017, 11:21
- Rola: Użytkownik CDN XL
- Wersja: 2016
Re: Kolumna z marżą na Liscie Towarów
Tak mam styczność piszę proste zapytania i nie wiem jak zapisać dynamiczne wyliczanie marzy rzeczywistej poniewaz powstaje ona poprzez podzielenie koknretnej ceny przez cene zakupu i nie wiem jak to zapisać ponieważ mam wyciągnięte ceny w kolumnach na liscie towarów zapytaniem:
Select TwC_Wartosc As '20-ZAKUP_TOYA'
From CDN.TwrCeny
Join CDN.Twrkarty on Twr_GIDNumer = TwC_TwrNumer
WHERE {filtrsql} and TwC_TwrLp = 20
i tak naprawdę teraz pozostaje mi tylko wziąć takie 2x zapytania każde z różnymi cenami i podzielić je przez siebie....tylko nie wiem jak to zapisać w SQL
Select TwC_Wartosc As '20-ZAKUP_TOYA'
From CDN.TwrCeny
Join CDN.Twrkarty on Twr_GIDNumer = TwC_TwrNumer
WHERE {filtrsql} and TwC_TwrLp = 20
i tak naprawdę teraz pozostaje mi tylko wziąć takie 2x zapytania każde z różnymi cenami i podzielić je przez siebie....tylko nie wiem jak to zapisać w SQL
-
- Posty: 934
- Rejestracja: 12 sty 2009, 12:03
- Rola: Administrator CDN XL
- Wersja: 2016
- Lokalizacja: Kraków
Re: Kolumna z marżą na Liscie Towarów
No to chyba nie do końca tak. Trochę się powymądrzam ale to tylko po to żeby dobrze zrozumieć co chcesz uzyskać.
Marża to różnica między ceną zakupową a sprzedażową i wyliczamy ją albo w wartości albo w procentach.
W tabeli TwrCeny masz tylko ceny towarów. Jeśli chcesz wyliczyć marżę trzeba dobrać się do Ceny zakupu. Np dla mnie ważne jest to też, że wyliczam ceny z zasobów na magazynie dlatego dla mnie dobrą tabelą z danymi jest CDN.TwrZasoby.
Trzeba to połączyć z Twoim zapytaniem i wyliczyć różnicę:
Takie coś pokaże Ci marżę wyliczoną w wartości ale... pod warunkiem, że typ ceny TwrLp = 20 to cena liczona od netto. Jeśli nie to należy odliczyć od niej jeszcze VAT
Jeśli chcesz mieć wartość procentową to tutaj odpowiedni stosunek ceny zakupowej (tutaj RzeczywistaNetto) do ceny sprzedaży (tutaj TwC_Wartosc) pozwoli wyliczyć marżę narzutową lub wynikową.
Czy taki miał być efekt?
Marża to różnica między ceną zakupową a sprzedażową i wyliczamy ją albo w wartości albo w procentach.
W tabeli TwrCeny masz tylko ceny towarów. Jeśli chcesz wyliczyć marżę trzeba dobrać się do Ceny zakupu. Np dla mnie ważne jest to też, że wyliczam ceny z zasobów na magazynie dlatego dla mnie dobrą tabelą z danymi jest CDN.TwrZasoby.
Kod: Zaznacz cały
select TwZ_TwrNumer, avg(TwZ_RzeczywistaNetto) as RzeczywistaNetto from cdn.TwrZasoby
Kod: Zaznacz cały
Select TwC_Wartosc - RzeczywistaNetto as Marza_Wartosc
From CDN.TwrCeny
Join CDN.Twrkarty on Twr_GIDNumer = TwC_TwrNumer
JOIN (select TwZ_TwrNumer as TwrNumer, avg(TwZ_RzeczywistaNetto) as RzeczywistaNetto from cdn.TwrZasoby group by TwZ_TwrNumer) as zas on zas.TwrNumer = Twr_GIDNumer
WHERE {filtrsql} and TwC_TwrLp = 20
Jeśli chcesz mieć wartość procentową to tutaj odpowiedni stosunek ceny zakupowej (tutaj RzeczywistaNetto) do ceny sprzedaży (tutaj TwC_Wartosc) pozwoli wyliczyć marżę narzutową lub wynikową.
Czy taki miał być efekt?
-
- Posty: 28
- Rejestracja: 30 lis 2017, 11:21
- Rola: Użytkownik CDN XL
- Wersja: 2016
Re: Kolumna z marżą na Liscie Towarów
Niestety lecz źle wytłumaczyłem generalnie chce finalnie uzyskać i zapisać następujący zapis matematyczny: 1-(Cena_Zakup / Cena_Sprzedaży) gdzie:
Zapytanie sql do ceny zakupu to ZAPYTANIE1
A do ceny Sprzedaży zapytanie SQL to: ZAPYTANIE2
I teraz nie wiem jak połączyć wyniki tych dwóch zapytań w formę 1-(ZAPYTANIE1 / ZAYPTANIE2)
Zapytanie sql do ceny zakupu to ZAPYTANIE1
Kod: Zaznacz cały
Select TwC_Wartosc As '20-ZAKUP_TOYA'
From CDN.TwrCeny
Join CDN.Twrkarty on Twr_GIDNumer = TwC_TwrNumer
WHERE {filtrsql} and TwC_TwrLp = 20
Kod: Zaznacz cały
Select TwC_Wartosc As '2-HURT-TOYA'
From CDN.TwrCeny
Join CDN.Twrkarty on Twr_GIDNumer = TwC_TwrNumer
WHERE {filtrsql} and TwC_TwrLp = 2
Re: Kolumna z marżą na Liscie Towarów
Rozwiązań jest kilka np. podzapytanie na zasadzie SELECT Twc_Wartosc, ISNULL((SELECT Twc_Wartosc FROM Ceny2),0) FROM Ceny1, oczywiście z warunkami żeby nie dzielić przez 0 i zawężeniem podzapytania do danego towaru.
Druga opcja to po prostu Twc_TwrLp IN (Lp1, Lp2) i grupowanie, po czym funkcje agregujące + CASE. Trzecia opcja to po prostu join z zaaliasowaną tabelą z drugą ceną.
To o czym mówi Yuber to fakt, że cena zakupu którą masz w cenniku (Zakładając, że jest aktualizowana przy nowej dostawie), to po prostu ostatnia cena zakupu, a na stanie mogą znajdować się zasoby które były kupione po X% taniej/drożej.
Pozdrawiam,
Mateusz
Druga opcja to po prostu Twc_TwrLp IN (Lp1, Lp2) i grupowanie, po czym funkcje agregujące + CASE. Trzecia opcja to po prostu join z zaaliasowaną tabelą z drugą ceną.
To o czym mówi Yuber to fakt, że cena zakupu którą masz w cenniku (Zakładając, że jest aktualizowana przy nowej dostawie), to po prostu ostatnia cena zakupu, a na stanie mogą znajdować się zasoby które były kupione po X% taniej/drożej.
Pozdrawiam,
Mateusz
-
- Posty: 28
- Rejestracja: 30 lis 2017, 11:21
- Rola: Użytkownik CDN XL
- Wersja: 2016
Re: Kolumna z marżą na Liscie Towarów
Dziękuje za pomoc, mam w takim wypadku pytanko czy da się napisać moje 2x zapytania połączyć w jedno podzapytanie?
-
- Posty: 934
- Rejestracja: 12 sty 2009, 12:03
- Rola: Administrator CDN XL
- Wersja: 2016
- Lokalizacja: Kraków
Re: Kolumna z marżą na Liscie Towarów
Kod: Zaznacz cały
Select ZAKUP_TOYA/HURT_TOYA
From CDN.TwrKarty
Join (select TwC_TwrNumer,TwC_Wartosc as ZAKUP_TOYA from CDN.TwrCeny where TwC_TwrLp = 20) as C20 on C20.TwC_TwrNumer = Twr_GIDNumer
Join (select TwC_TwrNumer,TwC_Wartosc as HURT_TOYA from CDN.TwrCeny where TwC_TwrLp = 2) as C2 on C2.TwC_TwrNumer = Twr_GIDNumer
WHERE {filtrsql}
-
- Posty: 28
- Rejestracja: 30 lis 2017, 11:21
- Rola: Użytkownik CDN XL
- Wersja: 2016
Re: Kolumna z marżą na Liscie Towarów
Dziękuje bardzo za pomoc musze się jeszcze wieeeele nauczyć ale dzięki Wam mam pogląd na możliwości SQL