Sql server 返回运行总计的条件子查询
我正在尝试使用返回运行总数的条件运行子查询。但是,我收到以下错误: 当子查询未引入EXISTS时,只能在选择列表中指定一个表达式 有没有办法挽救这段代码?请注意,此代码是一个更大的脚本的一部分,可以完美地执行。我之所以需要保持这种格式,是因为它缺少一个更好的词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
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有主键吗?谢谢,但这是必须解决的较大脚本的一部分