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%)
-----


mój błąd znalazłem. Gdzieś na końcu przykleił mi się warunek w poprzedniego pytania i schował się linijek poniżej. (IMG:style_emoticons/default/dostal.gif) (IMG:style_emoticons/default/sciana.gif)

Ale stała się inna ciekawa rzecz. Po znalezieniu błędu i wprowdzeniu zapytanie zachowuje się jakby "nie dzieliło" wyników według warunków. Mysql sam sobie wybiera co wstawić do taabeli. I teraz to wygląda w ten sposób:
Pytanie
  1. SELECT DISTINCT DATA AS DATA,IF(region=1 AND stopien='kierownik',sum(ilosc),NULL) AS kolumna1,
  2. IF(region IS NULL AND stopien='kierownik',sum(ilosc),NULL) AS kolumna2,
  3. IF(region IS NULL AND stopien='sprzedawca',sum(ilosc),NULL) AS kolumna3,
  4. sum(ilosc) AS pelna_suma
  5. FROM statystyka
  6. JOIN sprzedawcy USING (id_sprz )
  7. GROUP BY DATA

I teraz ciekawe są odpowiedzi, ponieważ wszędzie w tabli wynikowej mam pokazane to w ten sposób


data kolumna1 kolumna2 kolumna3 pelna_suma
data 15 null nulll 15
data null 12 null 12
data null 10 null 10
data null null 35 35
te wyniki są kompletną bzdurą. Wygląda tak jakby spełniał sobie tylko jednej wynik. Sprawdziłem w tabeli źródłowej i to nieprawda. wygląda jakby brał pod uwagę tylko jeden warunek. Dlaczego się tak dzieje?

Ten post edytował jacusek 1.02.2011, 12:31:37
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: 8.10.2025 - 11:18