sql语句 年限报表怎么select sum 1年之内的数据 1-3年 3-5年的 5+年的
sql语句 年限报表如何select sum 1年之内的数据 1-3年 3-5年的 5+年的
select sum XXX from XXX where XXX= 'XXX' 日期为datetime 接下来的的日期该怎么写 才能执行sum 一年内的数据 1-3年的 3-5年的 望贴上具体代码 谢谢!
------解决思路----------------------
你首先要把“3-5年”变为具体的“起始日期、截止日期”两个变量,然后再写你的sql语句。具体的如何根据起止日期写where条件,这个sql语法,你自己学一下。
要注意,千万不要写 DATEDIFF(YEAR,save_time ,GETDATE())>=..... 这类代码。因为它无法利用到索引,将会给一些真正应用到稍微大一点的数据上的查询报表带来问题。而且当你的产品的用户的数据稍微大一些时,如果程序员这样(明知道效率极低还)写代码,要比不会写查询语句更危险。
------解决思路----------------------
declear @startdate as datetime;
declear @enddate as datetime;
set @startdate =getdate()-365*n; n是入参,表示距今几年
set @enddate =getdate()-365*m; m是入参,表示距今几年
select sum XXX from XXX where XXX between @startdate and @enddate
select sum XXX from XXX where XXX= 'XXX' 日期为datetime 接下来的的日期该怎么写 才能执行sum 一年内的数据 1-3年的 3-5年的 望贴上具体代码 谢谢!
------解决思路----------------------
你首先要把“3-5年”变为具体的“起始日期、截止日期”两个变量,然后再写你的sql语句。具体的如何根据起止日期写where条件,这个sql语法,你自己学一下。
要注意,千万不要写 DATEDIFF(YEAR,save_time ,GETDATE())>=..... 这类代码。因为它无法利用到索引,将会给一些真正应用到稍微大一点的数据上的查询报表带来问题。而且当你的产品的用户的数据稍微大一些时,如果程序员这样(明知道效率极低还)写代码,要比不会写查询语句更危险。
------解决思路----------------------
declear @startdate as datetime;
declear @enddate as datetime;
set @startdate =getdate()-365*n; n是入参,表示距今几年
set @enddate =getdate()-365*m; m是入参,表示距今几年
select sum XXX from XXX where XXX between @startdate and @enddate