sql >> Databasteknik >  >> RDS >> Mysql

MySQL Sum-kolumnen IF ID finns i en annan tabellfråga

Jag tror att detta är en ganska enkel gå med, summera och gruppera efter:

  SELECT t.r_id, SUM(t.work) work_sum
    FROM tasks t
    JOIN info i
      ON i.id = t.r_id
     AND i.date BETWEEN xxx AND yyy
GROUP BY t.r_id

Om du vill ha en noll work_sum för uppgifter utan information i det intervallet:

   SELECT t.r_id, SUM(t.work) work_sum
     FROM tasks t
LEFT JOIN info i
       ON i.id = t.r_id
      AND i.date BETWEEN xxx AND yyy
 GROUP BY t.r_id

Om du vill ha 0 work_sum för uppgifter utan information i det intervallet:

   SELECT t.r_id, COALESCE(SUM(t.work),0) work_sum
     FROM tasks t
LEFT JOIN info i
       ON i.id = t.r_id
      AND i.date BETWEEN xxx AND yyy
 GROUP BY t.r_id



  1. Anslutning kan inte castas till oracle.jdbc.OracleConnection

  2. Ändra mysql användarlösenord med kommandoraden

  3. Old Style Oracle Outer Join-syntax - Varför hitta (+) på höger sida av likhetstecknet i en Left Outer-join?

  4. Ange standardvärde för en heltalskolumn SQLite