Autor Wątek: Wyświetlanie faktur zawierających produkt w którego nazwie jest dane wyrażenie  (Przeczytany 1563 razy)

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

Offline pit3rek

  • Nowy użytkownik
  • *
  • Wiadomości: 4
  • Reputacja +0/-0
  • Wersja programu: Subiekt GT 1.50 SP1 HF1
Witam wszystkich serdecznie :-)

Drodzy forumowicze, mam problem z którym już trochę walczę i niestety nie mogę wygrać więc zwracam się do was z prośbą o pomoc.

Potrzebuję napisać kod SQL który podświetli lub wybierze faktury które zawierają pozycje w których nazwie jest wyrażenie "lut".
Na chłopski rozum powinno działać (tabele przykładowe nie mające niestety odzwierciedlenia w bazie Subiekta GT):

SELECT * FROM faktury_przyjecia AS f_p
JOIN pozycje_fp AS p_fp
ON p_fp.id_faktury = f_p.id
WHERE p_fp.nazwa LIKE "%lut%"
GROUP BY f_p.id

Niestety, nie wiem jak przełożyć to na bazę danych Subiekta GT. Jest ona strasznie zawiła. Dostałem od firmy InsERT opis ale nie ogarniam go wystarczająco :(
Dziękuję wszystkim za pomoc.

Offline pir

  • Aktywny użytkownik
  • ***
  • Wiadomości: 301
  • Reputacja +14/-0
  • Wersja programu: zazwyczaj aktualna chyba że czekam na jakąś poprawkę
Czy nie lepiej jest będąc w dziale z FZ wcisnąć F8, przestawić wyszukiwanie na "Wybierz według instynktu towaru na pozycji" i wpisać "lut", lub nawet "%lut"?
« Ostatnia zmiana: Luty 21, 2018, 13:46:17 wysłana przez pir »

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17053
  • Reputacja +798/-27
  • Wersja programu: GT/Navireo/nexo
Niestety, nie wiem jak przełożyć to na bazę danych Subiekta GT. Jest ona strasznie zawiła. Dostałem od firmy InsERT opis ale nie ogarniam go wystarczająco :(
Dziękuję wszystkim za pomoc.

Po pierwsze nie wiem po co pisałeś do Insertu i co dostałeś skoro opis bazy danych znajduje się w pomocy do programu ? Tak informację i inne pomocne przy tworzeniu zestawień znajdziesz w dziale, do którego przeniosłem wątek. Zawsze możesz też poprosić o takie zestawienie dostawcę programu jeśli rzeczywiście będzie potrzebne.
Daniel, Białystok.

Offline pit3rek

  • Nowy użytkownik
  • *
  • Wiadomości: 4
  • Reputacja +0/-0
  • Wersja programu: Subiekt GT 1.50 SP1 HF1
Chodzi mi dokładnie o zrobienie Formatowania warunkowego SQL na liście faktur sprzedaży.
Póki co zrobiłem coś takiego:

CASE WHEN (SELECT COUNT (*) FROM dok_Pozycja
INNER JOIN tw__Towar
ON tw__Towar.tw_Id = dok_Pozycja.ob_TowId
WHERE tw_Nazwa LIKE ('%lut%')  AND dok_Pozycja.ob_DokHanId = dok_Id) > 0 THEN 1 ELSE 0 END

Niestety, nie zaznacza żadnej faktury :(

Offline candy

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 4875
  • Reputacja +172/-11
SOA: u mnie zaznacza
1. Nie szukasz w fakturach z usługami jednorazowymi?
2. Nie masz tam innego formatowania warunkowego na tej liście?
3. Zamiast warunku WHEN (SELECT COUNT (*) FROM dok_Pozycja
INNER JOIN tw__Towar
ON tw__Towar.tw_Id = dok_Pozycja.ob_TowId
WHERE tw_Nazwa LIKE ('%lut%')  AND dok_Pozycja.ob_DokHanId = dok_Id) > 0

dałbym WHEN EXISTS (SELECT * FROM dok_Pozycja
INNER JOIN tw__Towar
ON tw__Towar.tw_Id = dok_Pozycja.ob_TowId
WHERE tw_Nazwa LIKE ('%lut%')  AND dok_Pozycja.ob_DokHanId = dok_Id)

W końcu nie jest istotne ile razy tylko czy w ogóle występuje takie wyrażenie
Nie pytaj co rząd może zrobić dla Ciebie. Spytaj czy mógłby tego nie robić.

Offline pit3rek

  • Nowy użytkownik
  • *
  • Wiadomości: 4
  • Reputacja +0/-0
  • Wersja programu: Subiekt GT 1.50 SP1 HF1
Działa, zapomniałem dodać odniesienie do tabeli z dokumentami. Dla potomnych:

CASE WHEN (SELECT COUNT (*) FROM dok_Pozycja
INNER JOIN tw__Towar
ON tw__Towar.tw_Id = dok_Pozycja.ob_TowId
WHERE tw_Nazwa LIKE ('%lut%')  AND dok_Pozycja.ob_DokHanId = Dok.dok_Id) > 0 THEN 1 ELSE 0 END

Czyli, było:
dok_Pozycja.ob_DokHanId = dok_Ida być powinno:
dok_Pozycja.ob_DokHanId = Dok.dok_Id
Dziękuję wszystkim :)

Offline candy

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 4875
  • Reputacja +172/-11
U mnie zadziałało bez tego, więc gdybyś odpowiedział na moje pytania (szególnie nr 2) wnioski mogłyby być bardziej kompletne.
Nie pytaj co rząd może zrobić dla Ciebie. Spytaj czy mógłby tego nie robić.

Offline pit3rek

  • Nowy użytkownik
  • *
  • Wiadomości: 4
  • Reputacja +0/-0
  • Wersja programu: Subiekt GT 1.50 SP1 HF1
U mnie zadziałało bez tego, więc gdybyś odpowiedział na moje pytania (szególnie nr 2) wnioski mogłyby być bardziej kompletne.
Nie miałem innego formatowania warunkowego na liście.

Forum Użytkownikow Subiekt GT