как объединить таблицу в нескольких базах данных - PullRequest
0 голосов
/ 23 апреля 2019

У меня есть 4 таблицы в 4 базах данных, и я хочу фильтровать по максимальному значению по уникальному идентификатору и дате и времени сегодня утром с 6:00 до следующего утра 6:00 и вывести в виде другой таблицы /view.

Iустали присоединяться к столу в соответствии с этим требованием.

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

1 Ответ

0 голосов
/ 23 апреля 2019

Вы можете поместить database и schema name в начало table name.Вероятно, вы хотите union результат.Другой момент заключается в том, что вы фильтруете только по временной части , поэтому в нем будут приведены строки других дней (отличных от сегодняшнего дня) с одинаковым временем.

Ниже приведен пример того, какиспользовать несколько баз данных в 1 запросе,

select col1 from database1.dbo.table1
union all
select col1 from database2.dbo.table2

Обратите внимание, что я использую схему dbo.

...