Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MSSQL]Problem z zapytaniem select
gangi
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 29.06.2012

Ostrzeżenie: (0%)
-----


Mam problem z zapytaniem. Chcę żeby w zależności od tego czy wartość danej kolumny jest w zadanym przedziale był brany pod uwagę wybrany wiersz lub nie. Próbowałem użyć CASE ale nie działa mi to zapytanie. Możecie pomóc ?

  1. SELECT
  2. SUM(TrN_NettoR) AS [Wartośc sprzedaży]
  3. FROM
  4. CDN.TraNag
  5. INNER JOIN CDN.KntKarty ON Knt_GIDNumer=TrN_KntNumer
  6. WHERE
  7. TRN_DATA2>= DATEDIFF (DD,'18001228', '20120501' )AND
  8. TRN_DATA2<= DATEDIFF (DD,'18001228', '20120531' )AND
  9.  
  10. CASE
  11. WHEN TrN_GIDTyp IN (2033, 2037, 2041, 2045, 1824, 1828)
  12. TrN_SpiTyp != 0
  13. THEN TrN_SpiTyp != 0
  14. WHEN TrN_GIDTyp IN (2034, 2042)
  15. THEN TrN_SpiTyp = 0
  16. END
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
gangi
post
Post #2





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 29.06.2012

Ostrzeżenie: (0%)
-----


Dzięki. Poprawiłem zapytanie i je trochę rozbudowałem. Teraz wygląda tak:

WHERE
(TrN_GIDTyp IN (2033,2037,2041,2045,1824,1828) AND
TrN_SpiTyp <> 0 AND
TRN_DATA2>= DATEDIFF (DD,'18001228', '20120501' )AND
TRN_DATA2<= DATEDIFF (DD,'18001228', '20120531' )AND
Knt_Akronim <> 'ABC')
OR
(TrN_GIDTyp IN (2034,2042) AND
TrN_SpiTyp = 0 AND
TRN_DATA2>= DATEDIFF (DD,'18001228', '20120501' )AND
TRN_DATA2<= DATEDIFF (DD,'18001228', '20120531' )AND
Knt_Akronim <> 'ABC')

Czy można je jakoś przerobić żeby nie trzeba było powielać tych warunków ?

TRN_DATA2>= DATEDIFF (DD,'18001228', '20120501' )AND
TRN_DATA2<= DATEDIFF (DD,'18001228', '20120531' )AND
Knt_Akronim <> 'ABC'

Ten post edytował gangi 29.06.2012, 19:32:39
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 16:22