Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Selec case
koniol2
post
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 27.08.2010

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


date urodzenia mam 1958 jak poprawnie zrobic casa

  1. SELECT YEAR(data_urodzenia),
  2. CASE
  3. WHEN (YEAR(CURDATE())- YEAR(data_urodzenia)) >= '18' >='29' THEN '1'
  4. WHEN (YEAR(CURDATE())- YEAR(data_urodzenia)) <= '30' <='39' THEN '2'
  5. WHEN (YEAR(CURDATE())- YEAR(data_urodzenia)) <= '40' <='49' THEN '3'
  6. WHEN (YEAR(CURDATE())- YEAR(data_urodzenia)) <= '50' <='59' THEN '4'
  7. WHEN (YEAR(CURDATE())- YEAR(data_urodzenia)) <= '60' THEN '5'
  8. END AS rok
  9. FROM `zapisy`
  10. WHERE id=1
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




normalnie, jak kazde inne warunki
....when (war1 and war2) then...
....when (war3 and war4) then...
..............
Go to the top of the page
+Quote Post
koniol2
post
Post #3





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 27.08.2010

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


zawsze dostaje 1 a powinienem 4 co mam zle
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No a poprawiles jak ci napsialem? Bo to co maszw pierwszym poscie to jedno wielkie ZLE...

pozatym gdzie tu logika? Jesli wiek wiekszy od 18 i wiek wiekszy od 29...... Chyba bialo byc: jesli wiek wiekszy od 18 i wiek mniejszy od 29... nie sadzisz?
Ale masz to poprawic do tego co napisalem w pierwszym poscie.

I jak poprawisz i nadal nie bedzie dzialac, to masz pokazac kod po poprawkach a nie mamy sie domyslac co tam znowu natworzyles
Powód edycji: [nospor]:
Go to the top of the page
+Quote Post
koniol2
post
Post #5





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 27.08.2010

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


  1. SELECT YEAR(data_urodzenia),
  2. CASE (YEAR(CURDATE()- YEAR(data_urodzenia))
  3. WHEN ( >= '18' AND >='29') THEN '1'
  4. WHEN ( >= '30' AND >='39') THEN '2'
  5. WHEN ( >= '40' AND >='49') THEN '3'
  6. WHEN ( >= '50' AND >='59') THEN '4'
  7. WHEN ( > '60')THEN '5'
  8. END AS rok
  9. FROM `zapisy`
  10. WHERE id=1


cos takiego wymyslilem ale nie działa
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




wogole nie czytasz co sie do ciebie pisze.... Przeciez wyraznie napisalem, ze >18 and > 29 jest bez sensu!!!!!

  1. SELECT YEAR(data_urodzenia),
  2.  
  3. CASE
  4.  
  5. WHEN ( (YEAR(CURDATE())- YEAR(data_urodzenia)) >= 18 AND (YEAR(CURDATE())- YEAR(data_urodzenia)) <=29) THEN 1
  6. ANALOGICZNIE RESZTA
  7.  
  8. FROM `zapisy`
  9.  
  10. WHERE id=1
Go to the top of the page
+Quote Post
koniol2
post
Post #7





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 27.08.2010

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


Dzieki nospor jak by ktos potrzebował to daje całę zapytanie
  1. SELECT YEAR(data_urodzenia),
  2. CASE
  3. WHEN ( (YEAR(CURDATE())- YEAR(data_urodzenia)) >= 18 AND (YEAR(CURDATE())- YEAR(data_urodzenia)) <=29) THEN 1
  4. WHEN ( (YEAR(CURDATE())- YEAR(data_urodzenia)) >= 29 AND (YEAR(CURDATE())- YEAR(data_urodzenia)) <=39) THEN 2
  5. WHEN ( (YEAR(CURDATE())- YEAR(data_urodzenia)) >= 39 AND (YEAR(CURDATE())- YEAR(data_urodzenia)) <=49) THEN 3
  6. WHEN ( (YEAR(CURDATE())- YEAR(data_urodzenia)) >= 49 AND (YEAR(CURDATE())- YEAR(data_urodzenia)) <=59) THEN 4
  7. ELSE 5
  8. END AS rok
  9. FROM `zapisy`
  10. WHERE id=1
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Zacznij troche myslec logicznie.

Skoro jeden warunek sie konczy na <=29
to drugi nie ma sensu by sie zaczynal od >=29. Ma sie zaczynac od >29. To są naprawde proste i logiczne rzeczy.
Go to the top of the page
+Quote Post

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: 26.08.2025 - 02:17