使用SQL server mgmt studio 2014的Coder-newbie。我正在尝试在两个表上完成一个完整的连接:
DAILY
ID| NAME | DATE |HEALTH
1 | Tim |01/01/2016 | 4
2 | George| 01/01/2016| 5
1 | Tim |02/01/2016 | 8
2 | George| 02/01/2016| 7
TRAINING
ID| DATE | LOAD
1 | 2016-01-01 | 60
1 | 2016-01-01 | 40
1 | 2016-02-01 | 100
2 | 2016-02-01 | 75
从表中可以看出,通常每天每个ID都有一个条目,但是每天通常会有多个条目和TRAINING的ID。 - 或者有时候只是为了混淆事情!
我想加入一个表,每个日期和id都有一行,以及该特定日期和id的加载总和。到目前为止的代码如下,但我假设我还需要一个groupby和sum运算符。这是迄今为止我取得的最好成绩
select daily.id, daily.date, health, training.date, load
From daily
full join training
on daily.id = training.id
id | date |health |date |load
1 | 2016-01-01| 4 |2016-01-01 |60
1 | 2016-01-01| 4 |2016-01-01 |40
2 | 2016-01-01| 5 |NULL |NULL
1 | 2016-01-02| 8 |NULL |NULL
2 | 2016-01-02| 7 |NULL |NULL
NULL| NULL |NULL | 2016-02-01|100
NULL| NULL |NULL |2016-02-01 |75
而第一行我实际上想要这样:
id | date |health |date |load
1 | 2016-01-01| 4 |2016-01-01 |100
如果有人可以帮助我,我会非常感激,因为我正在纠结于新手编码结!
答案 0 :(得分:0)
SELECT daily.id, daily.date, daily.health, SUM(training.load)
FROM daily
LEFT JOIN training
ON daily.id = training.id
AND daily.date = training.date
GROUP BY daily.id, daily.date, daily.health
如果由于某种原因这不能编译或给出正确的结果,请注意。