簡體   English   中英

在SSRS中創建硬編碼數據集時出錯

[英]Error creating hardcoded dataset in SSRS

試圖在本季度為幾個月的SSRS報告創建硬編碼數據集。 我有這個:

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

但我收到此錯誤:

如果未使用EXISTS引入子查詢,則只能在選擇列表中指定一個表達式。

以前,我嘗試使用表變量:

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

但是我得到了錯誤:

不支持Declare SQL構造或語句。

有誰對我如何在SSRS數據集中使用它有任何想法?

也許是這樣的。

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

退貨

Months   Month_Number
January  01
February 02
March    03

嘗試創建所有月份和季度的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

讓我知道是否有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM