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