Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.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 将多个记录合并为1_Sql_Oracle - Fatal编程技术网

Sql 将多个记录合并为1

Sql 将多个记录合并为1,sql,oracle,Sql,Oracle,我有一张这样的桌子: 我正在尝试编写一个查询,该查询将返回以下内容: 我正在尝试根据生效日期合并记录,但前提是结束日期在生效日期和结束日期范围内。尝试以下SQL查询: select * from TABLE where end_date between effect_date and end_date 正如Chris Farmer之前所述,第二个要求结束日期必须介于生效日期和结束日期之间是愚蠢的,因为它总是正确的。 我为所有要合并的记录选择了max,因为您没有说明要如何合并它们。随时调整以

我有一张这样的桌子:

我正在尝试编写一个查询,该查询将返回以下内容:

我正在尝试根据生效日期合并记录,但前提是结束日期在生效日期和结束日期范围内。

尝试以下SQL查询:

select *
from TABLE
where end_date between effect_date and end_date
正如Chris Farmer之前所述,第二个要求结束日期必须介于生效日期和结束日期之间是愚蠢的,因为它总是正确的。
我为所有要合并的记录选择了max,因为您没有说明要如何合并它们。随时调整以适应您的需要;)

“生效日期”值怎么可能不在包含其自身作为边界之一的范围内?2012年1月21日的结束日期不在生效日期2012年1月22日和结束日期2012年2月4日之间。如果您注意到,我将使用生效日期和最大结束日期将前2条记录合并为1。然后,我需要将最后2条记录合并为1条,保留生效日期,并再次获得最大结束日期,在这种情况下是相同的。他说,合并,我会假设在数字上的总和(…)更合适?使用max(结束日期)解决了部分问题。将前两条记录合并在一起。我现在需要合并第二和第三条记录。看来我对这个问题解释得不好。
select employee
,      effect_date
,      max(end_date) end_date
,      max(clinical_fte)
,      max(admin_fte)
,      max(mgmt_fte)
,      max(other_fte)
from   table
group by employee
,      effect_date