如何在不使用存储过程的情况下将变量设置为选择查询的结果?
<小时/>我想做一些类似的事情: OOdate 日期时间
SET OOdate = Select OO.Date
FROM OLAP.OutageHours as OO
WHERE OO.OutageID = 1
然后我想在此查询中使用 OOdate:
SELECT COUNT(FF.HALID) from Outages.FaultsInOutages as OFIO
INNER join Faults.Faults as FF ON FF.HALID = OFIO.HALID
WHERE CONVERT(VARCHAR(10),OO.Date,126) = CONVERT(VARCHAR(10),FF.FaultDate,126))
AND
OFIO.OutageID = 1
最佳答案
你可以使用类似的东西
SET @cnt = (SELECT COUNT(*) FROM User)
或
SELECT @cnt = (COUNT(*) FROM User)
为此,SELECT 必须返回单个列和单个结果,并且 SELECT 语句必须位于括号中。
编辑:你尝试过这样的事情吗?
DECLARE @OOdate DATETIME
SET @OOdate = Select OO.Date from OLAP.OutageHours as OO where OO.OutageID = 1
Select COUNT(FF.HALID)
from Outages.FaultsInOutages as OFIO
inner join Faults.Faults as FF
ON FF.HALID = OFIO.HALID
WHERE @OODate = FF.FaultDate
AND OFIO.OutageID = 1
关于SQL Server 2005 将变量设置为选择查询的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/170078/