Sql server 返回运行总计的条件子查询

Sql server 返回运行总计的条件子查询,sql-server,database,Sql Server,Database,我正在尝试使用返回运行总数的条件运行子查询。但是,我收到以下错误: 当子查询未引入EXISTS时,只能在选择列表中指定一个表达式 有没有办法挽救这段代码?请注意,此代码是一个更大的脚本的一部分,可以完美地执行。我之所以需要保持这种格式,是因为它缺少一个更好的词 SELECT A.[WeekEnding], ( SELECT SUM(A.[Weekly Sales Units]), A.[Description], A.[WeekEnding] FROM [FACT_SA

我正在尝试使用返回运行总数的条件运行子查询。但是,我收到以下错误:

当子查询未引入EXISTS时,只能在选择列表中指定一个表达式

有没有办法挽救这段代码?请注意,此代码是一个更大的脚本的一部分,可以完美地执行。我之所以需要保持这种格式,是因为它缺少一个更好的词

SELECT A.[WeekEnding], 
    (
    SELECT SUM(A.[Weekly Sales Units]), A.[Description], A.[WeekEnding]
    FROM [FACT_SALES_HISTORY] A 
    INNER JOIN [DIM_DATE] B
    ON A.WeekEnding = B.[WeekEnding] WHERE B.[YA Latest 1 Week] = 1 
    GROUP BY A.[Description], A.[WeekEnding]
    ) AS 'YA Units'
FROM [FACT_SALES_HISTORY] A 
LEFT JOIN [DIM_DATE] B
ON A.WeekEnding = B.[WeekEnding]
代码中的输出数据如下所示:

 [Weekly Sales Units])  A.[Description]  A.[WeekEnding]
   24                   Item One          03-10-2010
   55                   Item Two          03-10-2010
   79                   Item One          03-10-2010
   98                   Item Five         03-10-2010
   11                   Item Five         03-10-2010

看起来您的子查询本身将提供示例数据,而外部查询正试图通过周末对其进行汇总。如果是这样的话,那么整个事情可以用这个来代替:

SELECT A.[WeekEnding], SUM(A.[Weekly Sales Units]) [YA Units]
FROM [FACT_SALES_HISTORY] A 
INNER JOIN [DIM_DATE] B
ON A.WeekEnding = B.[WeekEnding] WHERE B.[YA Latest 1 Week] = 1 
GROUP BY A.[WeekEnding]

不能在子查询中选择三个不同的项,然后使用AS分配。您可以将其拆分为两个单独的查询,然后合并它们

SELECT SUM(A.[Weekly Sales Units]), A.[Description], A.[WeekEnding]
    FROM [FACT_SALES_HISTORY] A 
    INNER JOIN [DIM_DATE] B
    ON A.WeekEnding = B.[WeekEnding] WHERE B.[YA Latest 1 Week] = 1 
    GROUP BY A.[Description], A.[WeekEnding]
UNION ALL -- This will only union distinct columns
SELECT A.[WeekEnding]...<Your other columns>
    FROM [FACT_SALES_HISTORY] A 

请提供样品数据和结果。谢谢。我已经添加了示例数据和结果。我不确定外部查询在做什么,你能使用子查询吗?我计划在我弄明白这一点后在外部查询中包含更多的列。表Fact\u Sales\u History有主键吗?谢谢,但这是必须解决的较大脚本的一部分