Autor Wątek: zestawienie sprzedaży z "rozwiniętymi" paragonami  (Przeczytany 31985 razy)

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

Offline birds22

  • Ekspert
  • *****
  • Wiadomości: 9209
  • Reputacja +1304/-21
  • Wersja programu: Najnowsza
zestawienie sprzedaży z "rozwiniętymi" paragonami
« Odpowiedź #15 dnia: Wrzesień 15, 2015, 13:25:53 »
A jak to robisz?
Sławek, Zduńska Wola

Offline msz3mk

  • Nowy użytkownik
  • *
  • Wiadomości: 15
  • Reputacja +0/-0
  • Wersja programu: 1.37
Odp: zestawienie sprzedaży z "rozwiniętymi" paragonami
« Odpowiedź #16 dnia: Wrzesień 15, 2015, 14:57:13 »
Cytuj
SELECT
(CASE When p.ob_DokHanLp =1 then  d.dok_nrpelny else '' End)        AS numer
,(CASE WHEN p.ob_DokHanLp =1 THEN CAST(d.dok_WartBrutto as varchar) ELSE '' END) as wartośćDokumentu
,(CASE WHEN t.tw_Nazwa is NULL THEN p.ob_Opis ELSE t.tw_Nazwa END) as Nazwa
,p.ob_wartbrutto     AS brutto
,adr_nazwa


FROM   
dok_pozycja p
left join dok__Dokument d on p.ob_DokHanId = d.dok_Id
left join tw__Towar t on p.ob_TowId= t.tw_Id
left join adr__Ewid ON dok_Id = adr_IdObiektu
WHERE  dok_typ=21
AND adr_typadresu=1
AND p.ob_TowRodzaj in (1,2,8)
AND d.dok_DataWyst BETWEEN {DR: data wystawienia}

Order by p.ob_Id asc

Offline birds22

  • Ekspert
  • *****
  • Wiadomości: 9209
  • Reputacja +1304/-21
  • Wersja programu: Najnowsza
zestawienie sprzedaży z "rozwiniętymi" paragonami
« Odpowiedź #17 dnia: Wrzesień 15, 2015, 15:44:42 »
Połączenie nie po dok_id bo to jest identyfikator dokumentu tylko po dok_platnikid bo to jest identyfikator płatnika z dokumentu.
Sławek, Zduńska Wola

Offline msz3mk

  • Nowy użytkownik
  • *
  • Wiadomości: 15
  • Reputacja +0/-0
  • Wersja programu: 1.37
Odp: zestawienie sprzedaży z "rozwiniętymi" paragonami
« Odpowiedź #18 dnia: Wrzesień 16, 2015, 10:19:07 »
Pięknie dziękuję! Działa wszystko :)

Offline msz3mk

  • Nowy użytkownik
  • *
  • Wiadomości: 15
  • Reputacja +0/-0
  • Wersja programu: 1.37
Odp: zestawienie sprzedaży z "rozwiniętymi" paragonami
« Odpowiedź #19 dnia: Październik 06, 2015, 10:37:44 »
Witam ponownie,

ZK tworzone jest na podstawie dokumentu zewnętrznego o pewnym numerze - jest to numer oryginalny dokumentu.
Na podstawie ZK jest wystawiany paragon imienny.
Chciałbym aby w zestawieniu pojawiał się numer oryginalny wspomnianego dokumentu.

Jak to technicznie wykonać ? Będę wdzięczny za pomoc.
« Ostatnia zmiana: Październik 06, 2015, 10:51:55 wysłana przez msz3mk »

Offline birds22

  • Ekspert
  • *****
  • Wiadomości: 9209
  • Reputacja +1304/-21
  • Wersja programu: Najnowsza
Odp: zestawienie sprzedaży z "rozwiniętymi" paragonami
« Odpowiedź #20 dnia: Październik 06, 2015, 10:52:06 »
dok_dodoknrpelny
Sławek, Zduńska Wola

Offline msz3mk

  • Nowy użytkownik
  • *
  • Wiadomości: 15
  • Reputacja +0/-0
  • Wersja programu: 1.37
Odp: zestawienie sprzedaży z "rozwiniętymi" paragonami
« Odpowiedź #21 dnia: Październik 06, 2015, 13:57:07 »
Dziękuję, pomoc eksperta niezawodna :)

Offline msz3mk

  • Nowy użytkownik
  • *
  • Wiadomości: 15
  • Reputacja +0/-0
  • Wersja programu: 1.37
Odp: zestawienie sprzedaży z "rozwiniętymi" paragonami
« Odpowiedź #22 dnia: Październik 06, 2015, 16:01:02 »
OK, potrzebuję jeszcze dodatkowej pomocy.

Czy można w takim zestawieniu dodać filtr, który wyświetlałby tylko te paragony, które zawierają towary o określonej nazwie, dokładniej mówiąc dane słowo w nazwie towaru ?
Np. mamy na paragonie chleb żytni, woda, pomidor; na drugim paragonie kapusta, fasolka. Jeśli dodam filtr z szukaniem w nazwie towaru "chleb" zestawienie powinno pokazać tylko pierwszy paragon.
Mam nadzieję, że jasno to sprecyzowałem, teraz pytanie jak to technicznie wykonać ?

Offline marcink

  • Aktywny użytkownik
  • ***
  • Wiadomości: 362
  • Reputacja +49/-0
  • Wersja programu: Subiekt GT , Sprint
Odp: zestawienie sprzedaży z "rozwiniętymi" paragonami
« Odpowiedź #23 dnia: Październik 07, 2015, 00:41:29 »
W klauzuli WHERE dodaj dok_Id IN (SELECT ob_DokHanId FROM dok_pozycje where "Twój filtr")

Offline msz3mk

  • Nowy użytkownik
  • *
  • Wiadomości: 15
  • Reputacja +0/-0
  • Wersja programu: 1.37
Odp: zestawienie sprzedaży z "rozwiniętymi" paragonami
« Odpowiedź #24 dnia: Październik 07, 2015, 08:14:08 »
Dziękuję za pomoc, obecnie zapytanie wygląda tak:

SELECT
(CASE When p.ob_DokHanLp =1 then  dok_dodoknrpelny else '' End)
,(CASE When p.ob_DokHanLp =1 then  dok_uwagi else '' End)
,dok_nrpelny
,p.ob_ilosc
,(CASE WHEN t.tw_Nazwa is NULL THEN p.ob_Opis ELSE t.tw_Nazwa END)

FROM   
dok_pozycja p
left join dok__Dokument d on p.ob_DokHanId = d.dok_Id
left join tw__Towar t on p.ob_TowId= t.tw_Id
WHERE  dok_typ=21
AND dok_Id IN (SELECT ob_DokHanId FROM dok_pozycje where "filtr")
AND p.ob_TowRodzaj in (1,2,8)
AND d.dok_DataWyst BETWEEN {DR: data wystawienia}

Order by dok_nrpelny

Niestety, wyskakuje błąd:
Cytuj
Błąd zwrócony przez SQL Server:
An expression of non-boolean type specified in a context where a condition is expected, near ')'

Będę wdzięczny za kolejną pomoc.

Offline birds22

  • Ekspert
  • *****
  • Wiadomości: 9209
  • Reputacja +1304/-21
  • Wersja programu: Najnowsza
Odp: zestawienie sprzedaży z "rozwiniętymi" paragonami
« Odpowiedź #25 dnia: Październik 07, 2015, 08:22:08 »
Nie przeklejaj tylko pomyśl:

Cytuj
AND dok_Id IN (SELECT ob_DokHanId FROM dok_pozycje where "filtr")

Filtr(warunek) sam się zdefiniuje?

BTW
Literówka - nie ma tabeli dok_pozycje
Sławek, Zduńska Wola

Offline msz3mk

  • Nowy użytkownik
  • *
  • Wiadomości: 15
  • Reputacja +0/-0
  • Wersja programu: 1.37
Odp: zestawienie sprzedaży z "rozwiniętymi" paragonami
« Odpowiedź #26 dnia: Październik 07, 2015, 08:35:53 »
Nie miałem wcześniej do czynienia z SQL i staram się coś załapać, jednak nie wiem w jaki sposób zdefiniować filtr :(

Zamiast tabeli dok_pozycje powinna być tw_nazwa?

Offline msz3mk

  • Nowy użytkownik
  • *
  • Wiadomości: 15
  • Reputacja +0/-0
  • Wersja programu: 1.37
Odp: zestawienie sprzedaży z "rozwiniętymi" paragonami
« Odpowiedź #27 dnia: Październik 07, 2015, 08:45:56 »
Ok, poszukałem szybko, mam nadzieję, że jestem bliżej:

AND dok_Id IN (SELECT ob_DokHanId FROM dok_dokument where tw_nazwa LIKE "%chleb%")
Tyle, że zapytanie zwraca "błąd wykonania zapytania".

Offline birds22

  • Ekspert
  • *****
  • Wiadomości: 9209
  • Reputacja +1304/-21
  • Wersja programu: Najnowsza
Odp: zestawienie sprzedaży z "rozwiniętymi" paragonami
« Odpowiedź #28 dnia: Październik 07, 2015, 08:57:59 »
Ok, poszukałem szybko, mam nadzieję, że jestem bliżej:

AND dok_Id IN (SELECT ob_DokHanId FROM dok_dokument where tw_nazwa LIKE "%chleb%")
Tyle, że zapytanie zwraca "błąd wykonania zapytania".

W wyniku podzapytania (to w nawiasach) musisz dostać identyfikatory dokumentu handlowego (ob_DokHanId) z tabeli dok_pozycja spełniające jakieś warunki

Napisałeś:

AND dok_Id IN (SELECT ob_DokHanId FROM dok_dokument where tw_nazwa LIKE "%chleb%")
Czy sprawdziłeś, że w tabeli dok_dokument (nie ma takiej tabeli bo jest dok__dokument) jest pole ob_DokHanId ?
Nie sprawdziłeś, bo tam nie ma takiego pola...
Pole ob_DokHanId jest w tabeli dok_pozycja.

Zanim umieścisz podzapytanie w zapytaniu głównym to sprawdź czy samo poprawnie działa.


Sławek, Zduńska Wola

Offline msz3mk

  • Nowy użytkownik
  • *
  • Wiadomości: 15
  • Reputacja +0/-0
  • Wersja programu: 1.37
Odp: zestawienie sprzedaży z "rozwiniętymi" paragonami
« Odpowiedź #29 dnia: Październik 07, 2015, 09:01:43 »
Dziękuję doszedłem do tego, że zadziałało :)

AND dok_Id IN (SELECT ob_DokHanId FROM dok_pozycja where tw_nazwa LIKE '%chleb%')
« Ostatnia zmiana: Październik 07, 2015, 09:04:51 wysłana przez msz3mk »

Forum Użytkownikow Subiekt GT

Odp: zestawienie sprzedaży z "rozwiniętymi" paragonami
« Odpowiedź #29 dnia: Październik 07, 2015, 09:01:43 »