Forum Użytkownikow Subiekt GT
InsERT GT => Subiekt GT => Wątek zaczęty przez: molu2008 w Styczeń 30, 2024, 13:39:06
-
Dzień dobry
Walczę od pewnego czasu z ustawieniem formatowania które podświetli mi kontrahentów którzy pojawiają się więcej niż 1 raz na liście zamówień od klienta (zdarza się u nas że system bez sensu rozbija zamówienia, miało by to zwrócić moją uwagę aby to sprawdzić)
Aktualnie mam coś takiego:
CASE WHEN (SELECT COUNT(vwDok4ZamGrid.dok_OdbiorcaAdreshId) FROM vwDok4ZamGrid WHERE vwDok4ZamGrid.dok_OdbiorcaAdreshId=Adres.adrh_Id GROUP BY vwDok4ZamGrid.dok_OdbiorcaAdreshId HAVING COUNT(*)>1)>=2
THEN 1
ELSE 0
END
Czegoś mi tutaj brakuje (najpewniej wiedzy :) ), płacę złotem za podpowiedz gdzie zbłądziłem w swoim rozumowaniu
-
Widzę co najmniej dwa problemy...
1) Nie jest uwzględniany status realizacji zamówienia.
2) Nie sprawdzasz kontrahentów tylko ich historyczne adresy, a może być tak, że dla każdego zamówienia jest tworzony nowy adres historyczny kontrahenta.
-
Plus, jeśli dobrze zrozumiałem, mają się oznaczyć zamówienia wyłącznie pojawiające się obecnie na liście - czyli przy filtrowaniu np. na ostatnich 30 dni mają zostać oznaczone wyłącznie takie przypadki z ostatnich 30 dni a starsze zamówienia mają zostać zignorowane do tego podzapytania powinny być przekazane warunki filtrowania (nie wiem czy to można zrobić).
-
No NIE można.
-
Ale można zrobić tak:
case when count (*) over (partition by dok_PlatnikId)>1 then 1 else 0 end