Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> CASE ELSE problem
seeb
post
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 6.12.2007
Skąd: Poznań

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


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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Spróbuj rzutować (CAST) cały CASE..END na odpowiedni typ.


--------------------
Go to the top of the page
+Quote Post
seeb
post
Post #3





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 6.12.2007
Skąd: Poznań

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


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ę.

Ten post edytował seeb 1.01.2015, 12:15:47
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 13:35