tes*_*est 44 sql sql-server sql-server-2005
如何在不使用存储过程的情况下将变量设置为select查询的结果?
我想做类似的事情:OOdate DATETIME
SET OOdate = Select OO.Date
FROM OLAP.OutageHours as OO
WHERE OO.OutageID = 1
Run Code Online (Sandbox Code Playgroud)
然后我想在此查询中使用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
Run Code Online (Sandbox Code Playgroud)
rsl*_*ite 70
你可以使用类似的东西
SET @cnt = (SELECT COUNT(*) FROM User)
Run Code Online (Sandbox Code Playgroud)
要么
SELECT @cnt = (COUNT(*) FROM User)
Run Code Online (Sandbox Code Playgroud)
为此,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
Run Code Online (Sandbox Code Playgroud)
All*_*ira 13
- Sql Server 2005管理工作室
use Master
go
DECLARE @MyVar bigint
SET @myvar = (SELECT count(*) FROM spt_values);
SELECT @myvar
Result: 2346 (in my db)
- 注意: @myvar = @Myvar
你到底是什么意思?您想将查询结果重复用于其他查询吗?
在这种情况下,为什么不通过在第一个查询的结果中进行第二个查询搜索来合并两个查询(SELECT xxx in (SELECT yyy...)