Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 使用月交叉联接的条件_Sql Server_Date_Cross Join - Fatal编程技术网

Sql server 使用月交叉联接的条件

Sql server 使用月交叉联接的条件,sql-server,date,cross-join,Sql Server,Date,Cross Join,表1有一列date,value 表2有monthnumber和monthname(即1-12表示数字和1-12月) 样本数据 |表1| |ColDate | value| |1-nov-2016 | 6| 预期产量 ColDate | value | month | monthnumber 1-nov-2016 | 6 | Nov | 11 1-nov-2016 | 0 | Dec |12 。。。。。除11月外的所有其他月份均为0 我在表1和表2之间使用了交叉连接,但它的输出如下 1-nov

表1有一列date,value 表2有monthnumber和monthname(即1-12表示数字和1-12月) 样本数据

|表1|

|ColDate | value|
|1-nov-2016 | 6|
预期产量

ColDate | value | month | monthnumber
1-nov-2016 | 6 | Nov | 11
1-nov-2016 | 0 | Dec |12
。。。。。除11月外的所有其他月份均为0

我在表1和表2之间使用了
交叉连接
,但它的输出如下

1-nov-2016 | 6 | Nov | 11
1-nov-2016 | 6 | Dec |12
。。。。。但除11月外,所有其他月份的6应为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
结果:


请用适当的格式编辑您的问题。。。