在 Left Outer Join 中使用 Sum 函数
Using Sum function in Left Outer Join
我在下面有两个表格:
1. DatesMaster
+----------+---------------+
| m_date | capacity |
+----------+---------------+
| 1/2/2016 | 10 |
| 2/2/2016 | 10 |
| 3/2/2016 | 10 |
+----------+---------------+
2. Schedule
+----------+-------+
| sch_date | qty |
+----------+-------+
| 1/2/2016 | 2 |
| 1/2/2016 | 2 |
| 1/2/2016 | 2 |
| 2/2/2016 | 5 |
| 2/2/2016 | 5 |
| 3/2/2016 | 5 |
| 3/2/2016 | 1 |
+----------+-------+
如何使用左外连接获得 capacity - qty
的结果,从而我可以显示 DatesMaster
的所有日期,Availability
作为 capacity
和总和之间的差异qty
个相同日期?
SELECT
中不在 GROUP BY
中的任何列都必须包含在聚合函数中,以便您可以在此查询中使用 MAX
。
SELECT DatesMaster.m_date
,MAX(DatesMaster.capacity) - SUM(Schedule.qty) AS Balance
FROM DatesMaster
LEFT JOIN Schedule ON DatesMaster.m_date = Schedule.sch_date
GROUP BY DatesMaster.m_date
或者,将 capacity
列添加到 GROUP BY
SELECT DatesMaster.m_date
,(DatesMaster.capacity) - SUM(Schedule.qty) AS Balance
FROM DatesMaster
LEFT JOIN Schedule ON DatesMaster.m_date = Schedule.sch_date
GROUP BY DatesMaster.m_date, DatesMaster.capacity
我在下面有两个表格:
1. DatesMaster
+----------+---------------+
| m_date | capacity |
+----------+---------------+
| 1/2/2016 | 10 |
| 2/2/2016 | 10 |
| 3/2/2016 | 10 |
+----------+---------------+
2. Schedule
+----------+-------+
| sch_date | qty |
+----------+-------+
| 1/2/2016 | 2 |
| 1/2/2016 | 2 |
| 1/2/2016 | 2 |
| 2/2/2016 | 5 |
| 2/2/2016 | 5 |
| 3/2/2016 | 5 |
| 3/2/2016 | 1 |
+----------+-------+
如何使用左外连接获得 capacity - qty
的结果,从而我可以显示 DatesMaster
的所有日期,Availability
作为 capacity
和总和之间的差异qty
个相同日期?
SELECT
中不在 GROUP BY
中的任何列都必须包含在聚合函数中,以便您可以在此查询中使用 MAX
。
SELECT DatesMaster.m_date
,MAX(DatesMaster.capacity) - SUM(Schedule.qty) AS Balance
FROM DatesMaster
LEFT JOIN Schedule ON DatesMaster.m_date = Schedule.sch_date
GROUP BY DatesMaster.m_date
或者,将 capacity
列添加到 GROUP BY
SELECT DatesMaster.m_date
,(DatesMaster.capacity) - SUM(Schedule.qty) AS Balance
FROM DatesMaster
LEFT JOIN Schedule ON DatesMaster.m_date = Schedule.sch_date
GROUP BY DatesMaster.m_date, DatesMaster.capacity