我在4个数据库中有4个表,并希望根据唯一id和日期时间过滤最大值,从今天早上6:00 AM到第二天早上6:00 AM,并输出为另一个表/view。
我试着按照这个要求加入到表中。
USE PLC_WTR1
GO
SELECT PLCTAG_PLC1_WTR1S001_PCReadJob_Tar_JobNo_Value,
MAX (Section_WTR1S001_CurrentJob_BatchLog_WeightActualProduced_Value) FROM WTR1
WHERE CAST (DateAndTime AS time) >= '05:59:00.000'
OR CAST (DateAndTime AS time) <= '05:59:00.000'
GROUP BY PLCTAG_PLC1_WTR1S001_PCReadJob_Tar_JobNo_Value
USE PLC_WTR2
GO
SELECT PLCTAG_PLC1_WTR2S001_PCReadJob_Tar_JobNo_Value,
MAX (Section_WTR2S001_CurrentJob_BatchLog_WeightActualProduced_Value) FROM WTR2
WHERE CAST (DateAndTime AS time) >= '05:59:00.000'
OR CAST (DateAndTime AS time) <= '05:59:00.000'
GROUP BY PLCTAG_PLC1_WTR2S001_PCReadJob_Tar_JobNo_Value
USE PLC_WTR3
GO
SELECT PLCTAG_PLC1_WTR3S001_PCReadJob_Tar_JobNo_Value,
MAX (Section_WTR3S001_CurrentJob_BatchLog_WeightActualProduced_Value) FROM WTR3
WHERE CAST (DateAndTime AS time) >= ' 05:59:00.000'
OR CAST (DateAndTime AS time) <= '05:59:00.000'
GROUP BY PLCTAG_PLC1_WTR3S001_PCReadJob_Tar_JobNo_Value
USE PLC_WTR4
GO
SELECT PLCTAG_PLC1_WTR4S001_PCReadJob_Tar_JobNo_Value,
MAX (Section_WTR4S001_CurrentJob_BatchLog_WeightActualProduced_Value) FROM WTR4
WHERE DateAndTime >= '2019-04-17 05:59:00.000'
OR DateAndTime <= '2019-04-18 05:59:00.000'
GROUP BY PLCTAG_PLC1_WTR4S001_PCReadJob_Tar_JobNo_Value发布于 2019-04-23 18:15:18
您可以将数据库和模式名称放在表名称的开头。您可能想要一个union结果。另一点是,您只在时间部分上过滤,因此它将带来具有相同时间的其他日期(除了今天)的行。
下面是一个如何在一个查询中使用多个数据库的示例。
select col1 from database1.dbo.table1
union all
select col1 from database2.dbo.table2请注意,我使用的是dbo模式。
https://stackoverflow.com/questions/55808323
复制相似问题