从同一查询中的两个表中加载数据

时间:2019-01-30 10:43:00

标签: sql-server

我试图通过更改查询命令以使其包含来自同一SQL的同一数据库中两个表中的数据并将它们加载到我的VB.Net项目中的同一datagrid中,从而免于更加努力

我在Management Studio中有一个查询cmd,如下所示:

有效查询

SELECT        DateAndTime, Millitm, TagIndex, Val
FROM          PD_All_FT
WHERE         (DateAndTime = '2019-01-30 07:59:58.000') AND (Millitm = 597)
ORDER BY      DateAndTime DESC

^搜索我的浮动数据值


我要工作的双重查询

但是我希望它同时搜索浮动和字符串.dbo(相同查询)

在我的头上看起来像这样:

SELECT        DateAndTime, Millitm, TagIndex, Val
FROM          PD_All_ST & PD_All_ST
WHERE         (DateAndTime = '2019-01-30 07:59:58.000') AND (Millitm = 597)
ORDER BY      DateAndTime DESC

^同时搜索PD_All_FT和PD_All_ST,并将数据加载到我的VB.Net项目中的同一dgv中。


问题

这是否有可能,还是我必须进行两个独立的查询?

2 个答案:

答案 0 :(得分:1)

也许您想将基于两个表的数据的搜索组合到单个输出网格中:

SELECT        DateAndTime, Millitm, TagIndex, Val
FROM          PD_All_ST 
WHERE         (DateAndTime = '2019-01-30 07:59:58.000') AND (Millitm = 597)

UNION ALL

SELECT        DateAndTime, Millitm, TagIndex, CAST(Val as VARCHAR(50)) as Val 
FROM          PD_All_FT 
WHERE         (DateAndTime = '2019-01-30 07:59:58.000') AND (Millitm = 597)
ORDER BY      DateAndTime DESC

此外,您还可以基于视图的创建选择另一种方法:

CREATE VIEW dbo.myView
AS
SELECT        DateAndTime, Millitm, TagIndex, Val
FROM          PD_All_ST 
UNION ALL    
SELECT        DateAndTime, Millitm, TagIndex, Val
FROM          PD_All_FT 
GO

-- and then simply replace PD_All_FT  with a name of a recently created view:

SELECT        DateAndTime, Millitm, TagIndex, Val
FROM          myView
WHERE         (DateAndTime = '2019-01-30 07:59:58.000') AND (Millitm = 597)

答案 1 :(得分:1)

您可以使用“ UNION”获得两个表的结果,然后根据您的条件进行过滤。

您可以执行以下操作:

GetHashCode