[英]Error creating hardcoded dataset in SSRS
Trying to create a hard-coded dataset for an SSRS report for months in the quarter. 试图在本季度为几个月的SSRS报告创建硬编码数据集。 I have this: 我有这个:
SELECT CASE @Quarter
WHEN 'Q1' THEN (
SELECT 'January' as months, '01' as month_number
UNION ALL
SELECT 'February','02'
UNION ALL
SELECT 'March', '03')
WHEN 'Q2' THEN (
SELECT 'April' as months, '04' as month_number
UNION ALL
SELECT 'May','05'
UNION ALL
SELECT 'June', '06')
WHEN 'Q3' THEN (
SELECT 'July' as months, '07' as month_number
UNION ALL
SELECT 'August','08'
UNION ALL
SELECT 'September', '09')
ELSE (
SELECT 'October' as months, '10' as month_number
UNION ALL
SELECT 'November','11'
UNION ALL
SELECT 'December', '12')
END
But I'm getting this error: 但我收到此错误:
Only one expression can be specified in the select list when the subquery is not introduced with EXISTS. 如果未使用EXISTS引入子查询,则只能在选择列表中指定一个表达式。
Previously I tried using a table variable: 以前,我尝试使用表变量:
DECLARE @Months TABLE (months VARCHAR(9), month_start VARCHAR(2));
IF @Quarter = 'Q1'
INSERT INTO @Months VALUES ('January','01'), ('February','02'), ('March','03')
ELSE IF @Quarter = 'Q2'
INSERT INTO @Months VALUES ('April','04'), ('May','05'), ('June','06')
ELSE IF @Quarter = 'Q3'
INSERT INTO @Months VALUES ('July','07'), ('August','08'), ('September','09')
ELSE
INSERT INTO @Months VALUES ('October','10'), ('November','11'), ('December','12')
Select * FROM @Months
But I then get the error: 但是我得到了错误:
The Declare SQL construct or statement is not supported. 不支持Declare SQL构造或语句。
Does anyone have any ideas on how I could get it working within an SSRS Dataset? 有谁对我如何在SSRS数据集中使用它有任何想法?
Perhaps something like this. 也许是这样的。
Declare @Quarter varchar(2) = 'Q1'
Select months,month_number From (Values
('01','January','Q1'),('02','February','Q1'),('03','March','Q1'),
('04','April','Q2'),('05','May','Q2'),('06','June','Q2'),
('07','July','Q3'),('08','August','Q3'),('09','September','Q3'),
('10','October','Q4'),('11','November','Q4'),('12','December','Q4')
) N(month_number,months,Qtr)
Where Qtr=@Quarter
Returns 退货
Months Month_Number
January 01
February 02
March 03
Try creating a CTE with all months and quarters. 尝试创建所有月份和季度的CTE。
WITH MONTHS AS (
SELECT 'January' as months, '01' as month_number, 'Q1' [quarter]
UNION ALL
SELECT 'February','02', 'Q1'
UNION ALL
SELECT 'March', '03', 'Q1'
UNION ALL
SELECT 'April' as months, '04' as month_number, 'Q2'
UNION ALL
SELECT 'May','05', 'Q2'
UNION ALL
SELECT 'June', '06', 'Q2'
UNION ALL
SELECT 'July' as months, '07' as month_number, 'Q3'
UNION ALL
SELECT 'August','08', 'Q3'
UNION ALL
SELECT 'September', '09', 'Q3'
UNION ALL
SELECT 'October' as months, '10' as month_number, 'Q4'
UNION ALL
SELECT 'November','11', 'Q4'
UNION ALL
SELECT 'December', '12', 'Q4')
SELECT * FROM MONTHS
WHERE [quarter] = @Quarter
Let me know if this helps. 让我知道是否有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.