Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.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 CASE语句_Sql_Sql Server_Case - Fatal编程技术网

带有布尔运算符的SQL CASE语句

带有布尔运算符的SQL CASE语句,sql,sql-server,case,Sql,Sql Server,Case,见声明: SELECT t1.region, Count(t1.orders) AS orders, CASE t1.week                       WHEN < '5' THEN 'APR'                       WHEN < '10' THEN 'MAY'                       WHEN < '14' THEN 'JUN'         

见声明:

SELECT      t1.region, 
            Count(t1.orders) AS orders, 
            CASE t1.week 
                      WHEN < '5' THEN 'APR' 
                      WHEN < '10' THEN 'MAY' 
                      WHEN < '14' THEN 'JUN' 
                      WHEN < '19' THEN 'JUL' 
                      WHEN < '23' THEN 'AUG' 
                      WHEN < '27' THEN 'SEP' 
                      WHEN < '32' THEN 'OCT' 
                      WHEN < '36' THEN 'NOV' 
                      WHEN < '40' THEN 'DEC' 
                      WHEN < '45' THEN 'JAN' 
                      WHEN < '49' THEN 'FEB' 
                      WHEN < '53' THEN 'MAR' 
            END AS month, 
            dbo.inf_dates.months

FROM        dbo.[NonVoice Weekly_InflowCOMCAN] AS t1 
INNER JOIN  dbo.inf_dates 
                ON t1.week = dbo.inf_dates.fin_wk

WHERE       notes = 'Weekly COMPLETED'
            AND ([2MB/sub]) = 'ETH' 
            AND dbo.inf_dates.date > CONVERT(datetime, '2017-04-03 00:00:00', 102)

GROUP BY   t1.region 
           ,dbo.inf_dates.months 
选择t1.region,
将(t1.订单)计算为订单,
病例t1.1周

当这是正确的格式时,将
varchar
CONVERT(日期时间,'2017-04-03 00:00:00',102)
按区域分组
,dbo.inf_dates.months

您需要按案例语句分组。只需将case语句复制到分组部分。case语句上的代码是否正确?我希望您知道月份边界与周边界不对齐:一周可能在两个不同的月份中。此外,随着时间的推移,它会发生轻微的变化。尝试格式化代码,使其更易于阅读,这将帮助您获得更多答案。在比较字符串时,您必须小心。它逐字比较它们。例如,您认为此查询的结果将是:
选择case when'10'<'5',然后选择'small'else'等于或大于'end
。因此,您应该比较强制转换或转换为int值。
SELECT      t1.region, 
            Count(t1.orders) AS orders, 
            CASE 
                  WHEN t1.week < 5 THEN 'APR'
                  WHEN t1.week < 10 THEN 'MAY'
                  WHEN t1.week < 14 THEN 'JUN' 
                  WHEN t1.week < 19 THEN 'JUL' 
                  WHEN t1.week < 23 THEN 'AUG' 
                  WHEN t1.week < 27 THEN 'SEP' 
                  WHEN t1.week < 32 THEN 'OCT' 
                  WHEN t1.week < 36 THEN 'NOV' 
                  WHEN t1.week < 40 THEN 'DEC' 
                  WHEN t1.week < 45 THEN 'JAN' 
                  WHEN t1.week < 49 THEN 'FEB' 
                  WHEN t1.week < 53 THEN 'MAR' 
                  ELSE 'DEFAULT VALUE'
            END AS month, 
            dbo.inf_dates.months

FROM        dbo.[NonVoice Weekly_InflowCOMCAN] AS t1 
            INNER JOIN dbo.inf_dates 
                ON t1.week = dbo.inf_dates.fin_wk

WHERE       notes = 'Weekly COMPLETED'
            AND [2MB/sub]) = 'ETH' 
            AND dbo.inf_dates.date > CONVERT(datetime, '2017-04-03 00:00:00', 102)

GROUP BY   t1.region 
           ,dbo.inf_dates.months