Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: CASE ELSE problem
Forum PHP.pl > Forum > Bazy danych > MySQL
seeb
Witam!

Mam problem z CASE
  1. SELECT u.name,pr.Rodzaj_umowy,f.name,adm.*,
  2. CASE
  3. WHEN pr.Rodzaj_umowy = 'U'
  4. THEN '79.00'
  5. ELSE adm.oplata_adm
  6. END AS oplata
  7. FROM _raporty AS p
  8. LEFT JOIN _users AS u ON p.uid = u.id
  9. LEFT JOIN _users AS f ON f.id = p.pracodawca
  10. LEFT JOIN _adm AS adm ON f.id = adm.pid
  11. LEFT JOIN _pracownicy AS pr ON pr.id = p.uid
  12. LEFT JOIN _ptp AS ptp ON ptp.id=p.uid AND ptp.pracodawca = f.id
  13. WHERE p.pracodawca =1205
  14. AND p.rok = 2014
  15. AND p.miesiac =12
  16. AND p.faktura = 0
  17. AND p.uid > 0
  18. AND u.gid = 14
  19. AND pr.id = 662

Chcę żeby w przypadku nie spełnienia warunku pr.Rodzaj_umowy = 'U' pobrało zawartość pola adm.oplata_adm. Niestety nie działa to tak jak bym się tego spodziewał [dostaję BLOB].
Tak jak poniżej działa świetnie ale nie spełnia warunku pobierania danych z bazy.
  1. CASE
  2. WHEN pr.Rodzaj_umowy = 'U'
  3. THEN '79.00'
  4. ELSE '49.00'
  5. END AS oplata

Ma ktoś pomysł o co chodzi?
trueblue
Spróbuj rzutować (CAST) cały CASE..END na odpowiedni typ.
seeb
Wystarczyło jak poniżej:

  1. CASE
  2. WHEN pr.Rodzaj_umowy = 'U'
  3. THEN CAST('79.00' AS DECIMAL(4,2))
  4. ELSE adm.oplata_adm
  5. END AS oplata

Dziękuję.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.