Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 将两个结果合并为一行_Sql Server - Fatal编程技术网

Sql server 将两个结果合并为一行

Sql server 将两个结果合并为一行,sql-server,Sql Server,EmpID名称日期 1A 2014年1月7日2 1A 2014年1月7日4 1A 2014年2月7日1 1A 2014年7月2日2 2 B 2014年1月7日5 2 B 2014年2月7日5 我想将两个结果合并成一行,如下所示。这是我的声明,但我想找到解决方案,以获得总收入?。谢谢 选择EmpID、Name、Date、Sumearn FROM employee,其中日期介于DateFrom和DateTo之间 按EmpID、名称、日期分组 EmpID名称日期收入总额\u收入 1A 2014年7月2

EmpID名称日期

1A 2014年1月7日2

1A 2014年1月7日4

1A 2014年2月7日1

1A 2014年7月2日2

2 B 2014年1月7日5

2 B 2014年2月7日5

我想将两个结果合并成一行,如下所示。这是我的声明,但我想找到解决方案,以获得总收入?。谢谢

选择EmpID、Name、Date、Sumearn FROM employee,其中日期介于DateFrom和DateTo之间 按EmpID、名称、日期分组

EmpID名称日期收入总额\u收入

1A 2014年7月2日3 9


2b 2014年2月7日5 10

试试这个。将日期替换为所需的任何值

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
这将执行两次选择并合并其结果。定义为表1的第一个选择将选择指定日期的员工ID和收入

定义为表2的第二个报表将选择截至该日期(包括该日期)的员工总收入


然后根据员工ID将这两个语句连接在一起。

看起来您需要每个员工的最长日期和收入总和。假设每个ID/名称都需要一条记录,则可以执行以下操作:

select EmpID, Name, Max(Date), Sum(Earn) 
from YourTableName
group by EmpID, Name

你能发布你返回的列和列类型吗?以及用于提取数据的SQL语句?在预期结果中,第1行和第2行中的3和5分别指的是什么?这看起来像是一个输入错误。它不起作用了吗?还是有其他原因导致否决票?下面是我的陈述,但我还没有找到获取TotalEarn的解决方案-选择EmpID、Name、Date、Sumearn FROM employee,其中DateFrom和DateTo之间的日期按EmpID、Name、DateTotalEarn分组是Sumearn。这不是你想要的吗?Total_Earn是指从DateFrom和DateTo获得的总额,Earn是指当前日期的金额。比如在示例中,我选择日期=2014年7月2日,因此从2014年7月1日到2014年7月2日,收入=5,总收入=10。我知道你在问什么,请给我一点时间编辑我的回答