当列由不同的几个字符串组成时,如何查询min和max

时间:2014-12-22 22:24:43

标签: sql-server

我还在学习SQL查询。我的桌子看起来像这样:

Financial_Year_Month_Code由“年”组成,P01代表第1期。日历键只是年月日。

|---------------------------|--------------|--------------------        
| Financial_Year_Month_Code | Calendar_Key | Column 3...  
|---------------------------|--------------|--------------------  
| 1988 P01                  | 19870901     |
| ......
| 2013 P01                  | 20110901     |                 
| 2013 P01                  | 20110902     |            
| 2013 P01                  | 20110903     |           
| 2013 P01                  | .....        |            
| 2013 P02                  | 20111002     |           
| 2013 P02                  | 20111003     |            
| 2013 P02                  | 20111004     |           
| MORE...

我想查询的结果应如下所示:

|----------------------|------------------|--------------------|-----------------|        
| Financial_Code_Start | Calendar_Key_Min | Financial_Code_End |Calendar_key_max |  
|----------------------|------------------|--------------------|-----------------|  
| 2013 P02             | 20110901         | 2014 P01           | 20120930        |                
| 2013 P03             | 20111002         | 2014 P02           | 20121029        |
| ....

原始表格中有1988年至2014年的财务年度代码清单。管理层希望我在上面生成一张表格,列出2012年至2014年的财务年度代码,以便他们查看开始日期和结束日期12个月的滚动期。太糟糕了,我们的开发人员现在都在度假,所以我需要帮助。非常感谢你。

1 个答案:

答案 0 :(得分:0)

您可以按Financial_Year_Month_Code对查询进行分组,然后计算每个组的聚合(如MIN和MAX)。

SELECT Financial_Year_Month_Code, MIN(Calendar_Key), MAX(Calendar_Key) 
FROM YOUR_TABLE 
GROUP BY Financial_Year_Month_Code