添加列所需的SQL CODE

时间:2018-03-21 02:16:09

标签: sql sql-server

我创建了一个查询,通过使用以下查询获取列-TODAY,TOMORROW,TWO和5,FIVEPLUS:

SELECT COL1,a.COL2,DATE COL3,COL4,
       IIF(CONVERT(date, DATE COL3) > (CONVERT(date, GETDATE() - 1)), 1, 0) As Today, 
       IIF((CONVERT(date, DATE COL3) < CONVERT(date, GETDATE()) AND CONVERT(date, DATE COL3) > (CONVERT(date, GETDATE() - 2))), 1, 0) As Yesterday,
       IIF((CONVERT(date, DATE COL3) < (CONVERT(date, GETDATE() - 1)) AND CONVERT(date, DATE COL3) >= (CONVERT(date, GETDATE() - 5))), 1, 0) As TwoAndFive, 
       IIF(CONVERT(date, DATE COL3) < (CONVERT(date, GETDATE() - 5)), 1, 0) As FivePlus,
FROM [TBLBOOK] a LEFT JOIN
     [TBLUSER] b
     ON a.COL 1 = b.COL 1

我得到了必要的列,如今天,昨天,两个,五个,五个加上单独的列,但是,除了4列,我想在查询中加入额外的列作为&#34; Day group&#34;使用&#34; date col3&#34;中的数据作为触发器,使用IF条件将列数据填充到今天,昨天等作为新列的数据。与4个不同的切片器相比,我需要在今天,昨天等插入一个切片器。希望我的问题很明确,如果有人可以请你帮忙。

谢谢!

修改

使用上面提到的代码,我得到以下示例表:

  col 1,col2,date col3,col4,today,tomorrow,two and five,five plus 

我使用通过sql代码创建的上述表数据创建了一个数据透视表和切片器。我想添加另一个列名称&#34; day group&#34;今天,明天,两个,五个,五个加上作为新专栏的数据。我能够使用&#34;添加一个列。 if statement&#34;在Excel工作表示例中:=IF([@Days]<0,"Today",(IF([@Days]<1,"Yesterday",(IF([@Days]<6,"2-5 Days","> 5 Days")))))但我想使用上面的代码返回新列。

1 个答案:

答案 0 :(得分:0)

您想要使用的是一个简单的案例陈述。请找到修改过的sql。

SELECT COL1,a.COL2,DATE as COL3,COL4,
   IIF(CONVERT(date, DATE COL3) > (CONVERT(date, GETDATE() - 1)), 1, 0) As Today, 
   IIF((CONVERT(date, DATE COL3) < CONVERT(date, GETDATE()) AND CONVERT(date, DATE COL3) > (CONVERT(date, GETDATE() - 2))), 1, 0) As Yesterday,
   IIF((CONVERT(date, DATE COL3) < (CONVERT(date, GETDATE() - 1)) AND CONVERT(date, DATE COL3) >= (CONVERT(date, GETDATE() - 5))), 1, 0) As TwoAndFive, 
   IIF(CONVERT(date, DATE COL3) < (CONVERT(date, GETDATE() - 5)), 1, 0) As FivePlus,case 
  when CONVERT(date, DATE COL3) > (CONVERT(date, GETDATE() - 1)) then 'Today'
  when CONVERT(date, DATE COL3) < CONVERT(date, GETDATE()) AND CONVERT(date, DATE COL3) > (CONVERT(date, GETDATE() - 2))) then "Yesterday"

  when CONVERT(date, DATE COL3) < (CONVERT(date, GETDATE() - 1)) AND CONVERT(date, DATE COL3) >= (CONVERT(date, GETDATE() - 5)))then  "TwoAndFive" 

  when CONVERT(date, DATE COL3) < (CONVERT(date, GETDATE() - 5))then  "FivePlus"
  else 
   "" end as  [Day group] FROM [TBLBOOK] a LEFT JOIN
 [TBLUSER] b
 ON a.COL 1 = b.COL 1