我只是学习使用SQL Server来查询数据库(并最终创建我自己的)。我基本上试图复制我已经用Excel完成的大量工作,但这并不重要。SQL Server嵌套选择
编辑:这可能是一个更清晰的查询 -
SET NOCOUNT ON
DECLARE @StartDate DateTime
DECLARE @EndDate DateTime
SET @StartDate = DateAdd(mi,-10,GetDate())
SET @EndDate = GetDate()
SET NOCOUNT OFF
SELECT StartDateTime, TagName, Value
FROM History
WHERE TagName IN ('Master', 'Running')
AND DateTime >= @StartDate
AND DateTime <= @EndDate
这将返回是这样的:
Row StartDateTime TagName Value
-----------------------------------------------------
1 2016 07 27 15.01.39 Master 154
2 2016 07 27 15.01.39 Running 0
3 2016 07 27 15.01.40 Master 154
4 2016 07 27 15.01.40 Running 0
5 2016 07 27 15.01.41 Master 154
6 2016 07 27 15.01.41 Running 1
7 2016 07 27 15.01.42 Master 65
8 2016 07 27 15.01.42 Running 0
你可以看到StartDateTime
不断地重复两行。是否可以在同一行中获取一个StartDateTime
的值?
所以,你要选择记录相同的名称表的别名,其中的标记名是“MasterFaults”或标记名为“跑步'AND值是1? – steamrolla
“基本上我只需要选择”MasterFaults“TagName的行,其中'Running'的值为1。”只有0个结果具有'Running'和'MasterFaults'的标签名称。你的逻辑有些问题。 – Bistabil
如果您发布代码,XML或数据样本,**请**在文本编辑器中突出显示这些行,然后单击编辑器工具栏上的“代码样本”按钮(“{}”)以精确地格式化和语法突出显示它! –