SQL Server 2005 将变量设置为选择查询的结果

标签 sql sql-server sql-server-2005

如何在不使用存储过程的情况下将变量设置为选择查询的结果?

<小时/>

我想做一些类似的事情: 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/

相关文章:

SQL插入两个表的问题

java - 阻止 Hibernate 更新现有记录

c# - XML 解析在第 1 行第 9 列失败 : DTD is prohibited

sql - Postgres WHERE 两个数组有一个非空的交集

c# - 在数据库支持的 Web 应用程序中,对性能最重要的影响是什么?

PHP/Laravel : Retrieve new info of Model after save()

sql-server-2005 - 存储过程的版本更改

SQL Server 2005 - 多处理器使用

mysql - 立即获取授权用户mysql

mysql - 我可以像这样从 select 调用 mysql SP 吗?