小编oOo*_*oOo的帖子

获取每月的最长日期(T-SQL)

我有一个表格,屏幕截图中给出了数据

.在此输入图像描述

我只需要获取每个月具有最大Snapshot_Date的记录.

我需要我的结果数据集如下

在此输入图像描述

我怎么能这样做 我需要你的想法.

我试过用

select * 
from table 
where Snapshot_Date = (select MAX(Snapshot_Date) 
                       from table 
                      where DATEPART(MONTH,Snapshot_Date)=11) 
Run Code Online (Sandbox Code Playgroud)

但我需要在这里硬编码月份数!谢谢你的时间!!

t-sql

1
推荐指数
1
解决办法
1602
查看次数

具有许多WHEN子句的案例结构

我有一个表(TestTable),数据如下

在此输入图像描述

我需要根据ColA,Age,Gender列值创建一个计算列"Band".如下

 CASE

 WHEN ColA='A' AND AGE=1 AND GENDER='M' THEN 'BANDX90'
 WHEN ColA='A' AND AGE=1 AND GENDER='F' THEN 'BANDX91'
 .
 .
 .
 .
 WHEN ColA='A' AND AGE=65 AND GENDER='M' THEN 'BANDX18'
 WHEN ColA='A' AND AGE=65 AND GENDER='F' THEN 'BANDX19'
 WHEN ColA='B' AND AGE=1  AND GENDER='M' THEN 'BANDX39'
 WHEN ColA='B' AND AGE=1  AND GENDER='F' THEN 'BANDX56'  
 ELSE NULL
 END AS BAND           
Run Code Online (Sandbox Code Playgroud)

注意:我的用户/客户为excel表中的不同 WHEN条件提供了BAND值('BANDX90',....).

上述CASE方法的缺点是,如果我在表中有500条记录,那么我必须使用CASE 'WHEN' STMT 500 TIMES哪个不是一个好的选择.

在计算列时,是否有人遇到过相同的情况?如果是,请分享您的建议!

有没有其他方法可以实现这一目标?

sql t-sql sql-server

-2
推荐指数
1
解决办法
166
查看次数

标签 统计

t-sql ×2

sql ×1

sql-server ×1