EmpID名称日期赚取
1 A 7/1/2014 2
1 A 7/1/2014 4
1 A 7/2/2014 1
1 A 7/2/2014 2
2 B 7/1/2014 5
2 B 7/2/2014 5
我想将两个结果组合在一行中,如下所示。我的声明有,但我想找到获得Total_Earn的解决方案?感谢
" SELECT EmpID,Name,Date,Sum(earn)FROM employee WHERE DateFrom和DateTo之间的日期 GROUP BY EmpID,名称,日期"
EmpID名称日期获得Total_Earn
1 A 7/2/2014 3 9
2 B 7/2/2014 5 10
答案 0 :(得分:1)
看起来您想要每个员工的最大日期和收入总和。假设您想为每个ID / Name创建一条记录,您可以这样做:
select EmpID, Name, Max(Date), Sum(Earn)
from YourTableName
group by EmpID, Name
答案 1 :(得分:0)
试试这个。将日期替换为您想要的任何值。
SELECT table1.EmpID, table1.Name, table1.Date, table1.Earn, table2.Total_Earn
FROM
(SELECT EmpID, Name, Date, Earn
FROM yourtablename
WHERE Date = "2014-07-02"
GROUP BY EmpID) table1
LEFT JOIN
(SELECT EmpID, SUM(Earn)
FROM yourtablename
WHERE Date <= "2014-07-02"
GROUP BY EmpID) table2
ON table1.EmpID = table2.EmpID
这将执行两个SELECT并加入他们的结果。第一个选择(定义为table1)可以很好地选择指定日期的员工ID和收入。
第二个陈述(定义为表2)将选择员工的总收入(包括该日期)。
然后根据员工ID将这两个语句连接在一起。