Skocz do zawartości


Close Open
Close Open
Zdjęcie

Subiekt - zestawienie sprzedaż wg asortymentu


  • Please log in to reply
8 replies to this topic

#1 remix77

remix77

    Adept

  • Forumowicze
  • Pip
  • 3 Postów:
  • Płeć:Mężczyzna
  • Lokalizacja:Bydgoszcz, Polska

Napisany 15 lipiec 2009 - 11:06

Witam,
Czy mógłbym prosić o pomoc - sporządzenie zestawienia w SQL - takiego samego jak sprzedaż wg asortymentu, ale zawierającego jeszcze opcję typ transakcji vat (podział na kraj i zagranicę).
Proszę o kontakt - dziękuję.

Druga sprawa - czy byłby ktoś miły i wysłał mi strukturę bazy subiekta???

Z góry dziękuję za pomoc i pozdrawiam
Remigiusz

#2 remix77

remix77

    Adept

  • Forumowicze
  • Pip
  • 3 Postów:
  • Płeć:Mężczyzna
  • Lokalizacja:Bydgoszcz, Polska

Napisany 19 lipiec 2009 - 22:00

proszę dajcie jakiś sygnał....

#3 AroMazur

AroMazur

    Początkujący

  • Forumowicze
  • PipPipPip
  • 61 Postów:
  • Płeć:Mężczyzna
  • Lokalizacja:Wrocław, Polska

Napisany 22 lipiec 2009 - 01:04

Witam,
Czy mógłbym prosić o pomoc - sporządzenie zestawienia w SQL - takiego samego jak sprzedaż wg asortymentu, ale zawierającego jeszcze opcję typ transakcji vat (podział na kraj i zagranicę).
Proszę o kontakt - dziękuję.

Druga sprawa - czy byłby ktoś miły i wysłał mi strukturę bazy subiekta???

Z góry dziękuję za pomoc i pozdrawiam
Remigiusz



Transakcja vat jest przypisana do dokumentu nie jego pozycji.
Dla sprzedaży tego samego asortymentu za granicę i w kraju ilość miałaby być rozbita ?

Pozdrawiam

Arkadiusz Mazur

#4 remix77

remix77

    Adept

  • Forumowicze
  • Pip
  • 3 Postów:
  • Płeć:Mężczyzna
  • Lokalizacja:Bydgoszcz, Polska

Napisany 22 lipiec 2009 - 08:22

Tak,
Dzielę sprzedaż asortymentu na kraj i zagranicę, a przy aktualnym zestawieniu sprzedaż wg asortymentu, nie wiem ile danego indeksu sprzedaję w kraju a ile za granicą. Zagranica zniekształca mi statystyki - bo tam są większe "strzały"
pozdrawiam

#5 AroMazur

AroMazur

    Początkujący

  • Forumowicze
  • PipPipPip
  • 61 Postów:
  • Płeć:Mężczyzna
  • Lokalizacja:Wrocław, Polska

Napisany 22 lipiec 2009 - 10:53

Tak,
Dzielę sprzedaż asortymentu na kraj i zagranicę, a przy aktualnym zestawieniu sprzedaż wg asortymentu, nie wiem ile danego indeksu sprzedaję w kraju a ile za granicą. Zagranica zniekształca mi statystyki - bo tam są większe "strzały"
pozdrawiam

Coś takiego może być?
SELECT TrVAT = CASE 
				WHEN dok_RodzajOperacjiVat = 0 THEN 'S'
				WHEN dok_RodzajOperacjiVat = 1 THEN 'EX' 
				WHEN dok_RodzajOperacjiVat = 2 THEN 'WDT' 
				WHEN dok_RodzajOperacjiVat = 3 THEN 'WTTD'
				WHEN dok_RodzajOperacjiVat = 4 THEN 'EXU'
				WHEN dok_RodzajOperacjiVat = 12 THEN 'SPTU'
			   END,
		Rodzaj = CASE 
					WHEN ob_TowRodzaj = 1 THEN 'T'
					WHEN ob_TowRodzaj = 2 THEN 'U'
					WHEN ob_TowRodzaj = 4 THEN 'Op'
					WHEN ob_TowRodzaj = 8 THEN 'K'
						 END, 
		Nazwa = CASE 
					WHEN tw_Nazwa = '' 
						THEN '(Brak nazwy towaru)' 
						ELSE CASE 
								WHEN tw_Nazwa IS NULL 
									THEN '(Usługa jednorazowa)' 
									ELSE tw_Nazwa 
							 END 
				   END, 
		tw_Symbol AS Symbol, 
		grt_Nazwa AS Grupa, 
		SUM(ob_IloscMag * ob_Znak) AS Ilosc, 
		tw_JednMiary AS jm, 
		SUM(ob_WartBrutto * ob_Znak) AS WartBrutto, 
		SUM(ob_WartNetto * ob_Znak) AS WartNetto, 
		SUM(CASE 
				WHEN (ob_TowRodzaj&6)>0 AND (dok_DataWyst BETWEEN {D:Data od:2009-07-01} AND {D:do:2009-07-31})
					THEN 0 
					ELSE dbo.fnZestSub_KosztSpr({D:do:2009-07-31}, ob_Id)*ob_Znak 
			END) AS WartMag, 
		SUM((ob_WartNetto-CASE 
							WHEN (ob_TowRodzaj&6)>0 
								THEN 0 
								ELSE dbo.fnZestSub_KosztSpr({D:do:2009-07-31}, 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({D:do:2009-07-31}, 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_Status<>2  
	AND (( dok_DataWyst BETWEEN {D:Data od:2009-07-01} AND {D:do:2009-07-31} ) AND (dbo.fnMAKE_DOKPARAM(dok_Typ, dok_Podtyp) IN (131072, 131074, 131075, 131076, 131077, 262144, 393216, 393217, 393218, 1376256, 1376257, 1376258, 1376259, 917504, 917505))) 
	AND  ob_TowRodzaj & 15 > 0  
GROUP BY ob_TowRodzaj, tw_Nazwa, tw_Symbol, dok_RodzajOperacjiVat, grt_Nazwa,tw_JednMiary

Pozdrawiam

Arkadiusz Mazur

#6 birds22

birds22

    Entuzjasta

  • Forumowicze
  • PipPipPipPipPipPipPip
  • 1332 Postów:
  • Płeć:Mężczyzna
  • Lokalizacja:Zduńska Wola

Napisany 23 lipiec 2009 - 22:49

No proszę - człowiek z Insertu się nam tu pojawił
Fiu Fiu..
Jestem pod wrażeniem. Oby tak dalej - w końcu chyba to tu jest najwięcej w sieci o Subiekcie

No to jak już sama "góra" to nieśmiało zwrócę uwagę, że fragment
AND  ob_TowRodzaj & 15 > 0
jest chyba zbędny bo i tak oznacza, że ma brać pod uwagę wszystkie rodzaje.Innymi słowy zawsze jest spełniony.
Sławek

#7 AroMazur

AroMazur

    Początkujący

  • Forumowicze
  • PipPipPip
  • 61 Postów:
  • Płeć:Mężczyzna
  • Lokalizacja:Wrocław, Polska

Napisany 24 lipiec 2009 - 07:55

No proszę - człowiek z Insertu się nam tu pojawił
Fiu Fiu..
Jestem pod wrażeniem. Oby tak dalej - w końcu chyba to tu jest najwięcej w sieci o Subiekcie

No i zostałem zdemaskowany ;-)

No to jak już sama "góra" to nieśmiało zwrócę uwagę, że fragment

AND  ob_TowRodzaj & 15 > 0
jest chyba zbędny bo i tak oznacza, że ma brać pod uwagę wszystkie rodzaje.Innymi słowy zawsze jest spełniony.

To fakt teraz jest niepotrzebny.

Pzdr

AM

#8 PawelPawel888

PawelPawel888

    Adept

  • Forumowicze
  • Pip
  • 2 Postów:

Napisany 28 marzec 2012 - 14:59

Witam,

Mam takie pytanie: czy jest jakiś sposób, aby uzyskac w zestawieniu "sprzedaż wg. asortymantu" widoczność towarów, ktore sie nie sprzedaly (i widnialy by w zestawieniu z iloscia 0)?

Chodzi głównie o dodanie mozliwosci wyboru:

1. sprzedaz wszystkich towarow wraz z towarami, które w ogóle się nie sprzedaly
2. tych ktore faktycznie sie sprzedaly tak jak jest obecnie w oryginale. Czy moze jest jakis inny sposob na obejscie tego?

Z gory dziekuje za pomoc i pozdrawiam

#9 AroMazur

AroMazur

    Początkujący

  • Forumowicze
  • PipPipPip
  • 61 Postów:
  • Płeć:Mężczyzna
  • Lokalizacja:Wrocław, Polska

Napisany 30 marzec 2012 - 18:52

Wystaczyłoby dodać to co jest w poniższym od słowa kluczowego UNION pamiętając by wszystkie daty do i od były jednakowe.

Całość mogłaby wyglądać tak:
SELECT TrVAT = CASE
                  WHEN dok_RodzajOperacjiVat = 0 THEN 'S'
                  WHEN dok_RodzajOperacjiVat = 1 THEN 'EX'
                  WHEN dok_RodzajOperacjiVat = 2 THEN 'WDT'
                  WHEN dok_RodzajOperacjiVat = 3 THEN 'WTTD'
                  WHEN dok_RodzajOperacjiVat = 4 THEN 'EXU'
                  WHEN dok_RodzajOperacjiVat = 12 THEN 'SPTU'
               END,
      Rodzaj = CASE
                  WHEN ob_TowRodzaj = 1 THEN 'T'
                  WHEN ob_TowRodzaj = 2 THEN 'U'
                  WHEN ob_TowRodzaj = 4 THEN 'Op'
                  WHEN ob_TowRodzaj = 8 THEN 'K'
               END,
      Nazwa = CASE
                 WHEN tw_Nazwa = '' THEN '(Brak nazwy towaru)'
                                    ELSE CASE
                                            WHEN tw_Nazwa IS NULL THEN '(Usługa jednorazowa)'
                                                                  ELSE tw_Nazwa
                                         END
              END,
      tw_Symbol AS Symbol,
      grt_Nazwa AS Grupa,
      SUM(ob_IloscMag * ob_Znak) AS Ilosc,
      tw_JednMiary AS jm,
      SUM(ob_WartBrutto * ob_Znak) AS WartBrutto,
      SUM(ob_WartNetto * ob_Znak) AS WartNetto,
      SUM(CASE
             WHEN (ob_TowRodzaj&6)>0 AND (dok_DataWyst BETWEEN 2011-07-01 AND 2012-07-31)
                 THEN 0
                 ELSE dbo.fnZestSub_KosztSpr(2012-07-31, ob_Id)*ob_Znak
           END) AS WartMag,
      SUM((ob_WartNetto-CASE
                           WHEN (ob_TowRodzaj&6)>0 THEN 0
                                                   ELSE dbo.fnZestSub_KosztSpr(2012-07-31, 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.00

               ELSE dbo.fnZestSub_KosztSpr(2012-07-31, ob_Id)

END)*ob_Znak)/SUM(ob_WartNetto * ob_Znak))*100
                                   ELSE 0.00
                             END )
FROM vwZstSprzWgKhnt LEFT JOIN tw__Towar ON ob_TowId = tw_Id
                    LEFT JOIN sl_GrupaTw ON tw_IdGrupa = grt_Id
WHERE dok_Status<>2
       AND (( dok_DataWyst BETWEEN '20110701' AND '20120731' ) AND (dbo.fnMAKE_DOKPARAM(dok_Typ, dok_Podtyp) IN (131072, 131074, 131075, 131076, 131077, 262144, 393216, 393217, 393218, 1376256, 1376257, 1376258, 1376259, 917504, 917505)))
GROUP BY ob_TowRodzaj, tw_Nazwa, tw_Symbol, dok_RodzajOperacjiVat, grt_Nazwa,tw_JednMiary
UNION
SELECT '  brak  ',
      Rodzaj = CASE
                  WHEN tw_Rodzaj = 1 THEN 'T'
                  WHEN tw_Rodzaj = 2 THEN 'U'
                  WHEN tw_Rodzaj = 4 THEN 'Op'
                  WHEN tw_Rodzaj = 8 THEN 'K'
               END,
      Nazwa = CASE
                 WHEN tw_Nazwa = '' THEN '(Brak nazwy towaru)'
                                    ELSE CASE
                                            WHEN tw_Nazwa IS NULL THEN '(Usługa jednorazowa)'
                                                                  ELSE tw_Nazwa
                                         END
              END,
      tw_Symbol AS Symbol,
      grt_Nazwa AS Grupa,
      0,
      tw_JednMiary AS jm,
      0,
      0,
      0,
      0,
      0
FROM tw__Towar LEFT JOIN sl_GrupaTw ON tw_IdGrupa = grt_Id
WHERE tw_Id NOT IN ( SELECT ob_TowId FROM vwZstSprzWgKhnt WHERE dok_Status<>2
       AND (( dok_DataWyst BETWEEN '20110701' AND '20120731' ) AND (dbo.fnMAKE_DOKPARAM(dok_Typ, dok_Podtyp) IN (131072, 131074, 131075, 131076, 131077, 262144, 393216, 393217, 393218, 1376256, 1376257, 1376258, 1376259, 917504, 917505))))
GROUP BY tw_Rodzaj, tw_Nazwa, tw_Symbol, grt_Nazwa,tw_JednMiary


Pzdr AM




0 Użytkowników czyta ten temat

0 użytkowników, 0 gości, 0 anonimowych użytkowników