Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL]podwójny warunek w if()
jacusek
post
Post #1





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

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


Witam.
Mam dwie tabele na podstawie której chcę coś wyciągąnąć i muszę zastosować if. Problem polega na tym że w if() potrzebuję podać podwójny warunek.
Pytanie wygląda mniej więcej tak
  1. SELECT IF(tab1.warunek1=NULL tab1.warunek2='1',sum(cos),NULL) FROM tab2 JOIN tab1 USING (id_wystepujace_w_obu_tab)

To oczywiście w wielkim uproszczeniu.
Ale moje pytanie brzmi czy w ogóle można takie 2 warunki w if wstawić. Nigdzie nie znalazłem przykładu, a przynajmniej te co znajdowałem mnie nie satysfakcjonowały, które rozwiązywałyby ten problem.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
jacusek
post
Post #2





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

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


co ciekawe przy or mam ten sam wynik ......
Spróbuję to opisać.
W jednej tabeli mam dane statystyczne dotyczące sprzedawców. Sprzedawcy są podzieleni na kategorie. Sprzedawców trzymam w osobnej tabeli - co chyba jest najbardziej zrozumiałe.
Chciałem porównać w jednej tabeli wyniki sprzedawców w zależności od ich przynależności. Każdy zależy od jakiegoś regionu i ma powiedzmy inny stopień (stąd te dwa warunki) i pełne pytanie wygląda mniej więcej w ten sposób.
  1. SELECT DISTINCT DATA AS DATA,IF(region=1 AND stopien='kierownik',sum(ilosc),NULL),
  2. IF(region IS NULL AND stopien='kierownik',sum(ilosc),NULL)
  3. FROM statystyka
  4. JOIN sprzedawcy USING id_sprz
  5. GROUP BY DATA

To oczywiście przykład bo suma w środku jest dłuższa, ale oddaje to mniej więcej całą idee zapytania.
Co ciekawe, cokolwiek nie wstawię do warunku drugiego or czy and zawsze mam ten sam wynik co w kolumnie wynikającej z pierwszego warunku lub wartość nullową - czyli nie spełniającą warunku.


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: 2.10.2025 - 18:35