2017-02-22 7 views
0

表1の条件を使用すると、値 表2はmonthnumber、MONTHNAME(数とヤンのためのすなわち1-12 - 12月)は、列の日付を持っている サンプルデータクロスヶ月に参加

を|表1 | 11月

以外のすべての他の月のための出力

ColDate | value | month | monthnumber 
1-nov-2016 | 6 | Nov | 11 
1-nov-2016 | 0 | Dec |12 

..... 0期待

|ColDate | value| 
|1-nov-2016 | 6| 

私は表1と表2の間cross joinを使用しますが、それは

1-nov-2016 | 6 | Nov | 11 
1-nov-2016 | 6 | Dec |12 
として出力を提供します

..... 6月11日以外は0にする必要があります。

どうすればよいですか?

+1

適切な形式であなたの質問を編集してください... http://stackoverflow.com/editing-help – Darshak

答えて

0

DECLARE @TB1 TABLE (COLDATE VARCHAR(20),VALUE INT) 
INSERT INTO @TB1 
SELECT '1-NOV-2016',6 

DECLARE @TB2 TABLE(MONTH VARCHAR(10),MONTHNUMBER INT) 
INSERT INTO @TB2 
SELECT 'NOV',11 
UNION ALL 
SELECT 'DEC',12 

SELECT COLDATE 
     ,CASE WHEN MONTHNUMBER=11 THEN VALUE ELSE 0 END VALUE 
     ,MONTH 
     ,MONTHNUMBER 
FROM @TB1 
CROSS JOIN @TB2 

結果、これを試してみてください:

enter image description here