sql >> Database teknologi >  >> RDS >> Mysql

INT-sammenligning uden WHERE-udsagn

Prøv dette:

SELECT emp.name AS '## Name', (SELECT COUNT(*) FROM project p JOIN employee e ON p.number = e.number WHERE e.name = emp.name AND datediff(str_to_date(p.dateEnded, '%Y-%m-%d'), e.dateStarted) = 0 ) AS 'Day 0' ,(SELECT COUNT(*) FROM project p JOIN employee e ON p.number = e.number WHERE e.name = emp.name AND datediff(str_to_date(p.dateEnded, '%Y-%m-%d'), e.dateStarted) = 1 ) AS 'Day 1' ,(SELECT COUNT(*) FROM project p JOIN employee e ON p.number = e.number WHERE e.name = emp.name AND datediff(str_to_date(p.dateEnded, '%Y-%m-%d'), e.dateStarted) = 2 ) AS 'Day 2' ,(SELECT COUNT(*) FROM project p JOIN employee e ON p.number = e.number WHERE e.name = emp.name AND datediff(str_to_date(p.dateEnded, '%Y-%m-%d'), e.dateStarted) = 3 ) AS 'Day 3' ,(SELECT COUNT(*) FROM project p JOIN employee e ON p.number = e.number WHERE e.name = emp.name AND datediff(str_to_date(p.dateEnded, '%Y-%m-%d'), e.dateStarted) = 4 ) AS 'Day 4' ,(SELECT COUNT(*) FROM project p JOIN employee e ON p.number = e.number WHERE e.name = emp.name AND datediff(str_to_date(p.dateEnded, '%Y-%m-%d'), e.dateStarted) >= 5 ) AS 'Day 5' FROM employee emp GROUP BY emp.name

Se SQL Fiddle Demo (- har gjort nogle antagelser om dine data baseret på de angivne oplysninger).



  1. MYSQL sum() for forskellige rækker

  2. Sådan konverteres en streng til en numerisk værdi i PostgreSQL

  3. Kan ikke oprette forbindelse til MySQL fra Java:NullPointerException inde i MySQL-driverforbindelseslogikken

  4. Hvornår skal man bruge nedarvede tabeller i PostgreSQL?