【发布时间】:2017-11-14 06:36:42
【问题描述】:
我正在编写具有以下结构的查询:
IF (SELECT 8) = (SELECT 9)
INSERT INTO Quality_Report VALUES ('USBL', 'IM SL Current Time Period',(SELECT 8),(SELECT 9),'Match',GETDATE())
ELSE INSERT INTO Quality_Report VALUES ('USBL', 'IM SL Current Time Period',(SELECT 8),(SELECT 9),'Not Matched',GETDATE())
SELECT "8" 和 "9" 将被替换为返回数值的 SELECT 语句(如下所示)。
SELECT
CASE when Sum(AVG_DLY_SLS_LST_35_DYS) =0 then 0 else
Sum(INVN_DOL) / Sum(AVG_DLY_SLS_LST_35_DYS)end as [IM DSO Current Time Period]
FROM [Mars_Bars_RAW].DBO.[LND_ITEMDETAILS]
LEFT JOIN [Mars_Bars_RAW].DBO.[LND_OpcoMaster] ON OpCo_NBR = Opco
WHERE FISC_WEEK = '37'
AND FY17_Market = 'Southeast'
当我用实际查询替换我的两个 SELECT 语句时,我得到了这个错误:Msg 116, Level 16, State 1, Line 43 当子查询不使用 EXISTS 引入时,选择列表中只能指定一个表达式。
有什么理由我不能这样做?与虚拟 SELECT 8/9s 一起工作正常。
谢谢,
【问题讨论】:
-
微软 SQL (T-SQL)
标签: sql sql-server tsql if-statement select