Autor Wątek: Zestawienie sprzedaży wg magazynów / pracowników (widoczność magazynów 0 sprzed)  (Przeczytany 1418 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline tkrolik

  • Użytkownik
  • **
  • Wiadomości: 97
  • Reputacja +1/-0
  • Wersja programu: 1.55hf1
Witam
kiedyś ktoś z forum podpowiedział mi takie zestawienie które grupuje sprzedaż wg pracowników i magazynów

SELECT
'Pracownik' = CASE WHEN GROUPING(dok_Wystawil) = 1 THEN '(Razem sprzedaż)' ELSE CASE WHEN dok_Wystawil = ''  THEN 'brak pracownika' ELSE ISNULL(dok_Wystawil, '(Pracownik nieokreślony)') END END,

SUM(ob_IloscMag*ob_Znak) AS 'Ilość',
SUM(ob_WartBrutto*ob_Znak) AS 'Brutto',
SUM(ob_WartNetto*ob_Znak) AS 'Netto',
SUM(CASE WHEN (ob_TowRodzaj&6)>0 THEN 0 ELSE dbo.fnZestSub_KosztSpr(dok_DataWyst, ob_Id)*ob_Znak END) as 'Koszt',
SUM((ob_WartNetto-CASE WHEN (ob_TowRodzaj&6)>0 THEN 0 ELSE dbo.fnZestSub_KosztSpr(dok_DataWyst, ob_Id) END) * ob_Znak) as 'Zysk',
Marza = CONVERT(MONEY, CASE WHEN SUM(ob_WartNetto * ob_Znak)<>0 THEN (SUM((ob_WartNetto-CASE WHEN (ob_TowRodzaj&6)>0 THEN 0.0000 ELSE dbo.fnZestSub_KosztSpr(dok_DataWyst, ob_Id) END) * ob_Znak)/SUM(ob_WartNetto * ob_Znak))*100 ELSE 0.0000 END )


FROM vwZstSprzWgKhnt
LEFT JOIN tw__Towar ON ob_TowId = tw_Id
LEFT JOIN sl_GrupaTw ON tw_IdGrupa = grt_Id

WHERE (( dok_DataWyst BETWEEN {DR:Data dokumentu})
AND (dbo.fnMAKE_DOKPARAM(dok_Typ, dok_Podtyp)
IN ({CHL:Faktura VAT sprzedaży#131072#Faktura sprzedaży detaliczna#131073#Faktura sprzedaży zbiorcza#131074#Faktura sprzedaży zaliczkowa#131075#FS zaliczkowa cząstkowa nowa#131076#FS zaliczkowa końcowa nowa#131077#Rachunek sprzedaży#262144#Korekta faktury VAT sprzedaży#393216#Korekta faktury sprzedaży do nieistniejącego#393217#KFS korekta całkowita faktury zaliczkowej#393218#Paragon#1376256#Paragon fiskalny#1376257#Paragon imienny#1376258#Paragon odebrany z kasy#1376259#Zwrot#917504#Zwrot do nieistniejacego#917505#:Typ dokumentu:131072,131074,131075,131076,131077,262144,393216,393217,393218,1376256,1376257,1376258,1376259,917504,917505:(sprzedaż bez faktur detalicznych)})))

AND (dok_RodzajOperacjiVat IN ({CHL:sprzedaż krajowa - S#0#wewnątrzwspólnotowa dostawa towarów - WDT#2#eksport towarów (poza UE) - EX#1#transakcja trójstronna (dostawa) - WTTD#3#eksport usług - EXU#4#sprzedaż poza terytorium kraju - SPTK#12#odwrotne obciążenie (sprzedaż) - OOs#6#:typ transakcji VAT:0,2,1,3,4,12,6:(dowolny)})) AND (dok_MagId IN ({CHL_DB: SELECT mag_Id, mag_Nazwa FROM sl_Magazyn:magazyn:Select mag_Id FROM sl_Magazyn:(dowolny)})) AND dok_Status <> 2

GROUP BY dok_Wystawil WITH ROLLUP

a teraz moje pytanie jest takie, czy da się aby jeżeli na magazynie nie było sprzedaży , taki magazyn też się wyświetlał tylko z sumą 0
żeby te 0 było widoczne, bo teraz jeśli nie było sprzedaży to dany magazyn się nie wyświetla czy pracownik

czy ktoś pomoże bo ja ogarniam tylko proste zapytania sql :)

ps. czy da się tak napisać zestawienie jak jest to w fabrycznym że jeśli użytkownik nie ma uprawnień do zmiany magazynów to żeby i tutaj nie miał takiej możliwości (żeby domyślnie był jego magazyn i nie mógł tego przełączyć)
jak się nie da to ograniczę widoczność zestawienia dla danych użytkowników także nie ma problemu, ale może da się po prostu to zaimplementować ?

Offline yemet

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 1246
  • Reputacja +46/-1
  • Wersja programu: Navireo
Jeśli chodzi o dorzucenie zerowych to da się zrobić bez problemu.
« Ostatnia zmiana: Marzec 13, 2019, 12:22:50 wysłana przez yemet »

Offline tkrolik

  • Użytkownik
  • **
  • Wiadomości: 97
  • Reputacja +1/-0
  • Wersja programu: 1.55hf1
Podpowiesz czy raczej chcesz to zrobić odpłatnie bo mniemam że modyfikacja nie jest duża ?

Offline yemet

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 1246
  • Reputacja +46/-1
  • Wersja programu: Navireo
Wolałbym odpłatnie ale z zerówkami w dużym uproszczeniu mogę podpowiedzieć tyle, że np. możesz zrobić union all i selecta na magazyny różne od tego co jest w zapytaniu wyżej.

Forum Użytkownikow Subiekt GT