Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.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/7/sql-server/24.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组日期_Sql_Sql Server_Tsql - Fatal编程技术网

按月份列出的SQL组日期

按月份列出的SQL组日期,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有一个返回过期日期的查询: SELECT ci.accountnumber , ci.accountname , cvu.ExpirationDate FROM dbo.clientinfo ci INNER JOIN clientvehicleunit cvu ON ci.clientid = cvu.clientid 到期日期可以是任何月份和任何年份的任何时间 我需要返回12个月内每个月到期的单位数 我不知道该怎么做?您可以

我有一个返回过期日期的查询:

    SELECT ci.accountnumber
           , ci.accountname
           , cvu.ExpirationDate
      FROM dbo.clientinfo ci
INNER JOIN clientvehicleunit cvu ON ci.clientid = cvu.clientid
到期日期可以是任何月份和任何年份的任何时间

我需要返回12个月内每个月到期的单位数


我不知道该怎么做?

您可以这样做:

e、 g.有多少单位将于2012年到期:

SELECT MONTH(cvu.ExpirationDate) AS Mnth, YEAR(cvu.ExpirationDate) AS Yr, 
    COUNT(*) AS DueToExpire
FROM clientvehicleunit cvu
WHERE cvu.ExpirationDate >= '20120101' AND cvu.ExpirationDate < '20130101'
GROUP BY MONTH(cvu.ExpirationDate), YEAR(cvu.ExpirationDate)
选择月份(cvu.ExpirationDate)作为Mnth,选择年份(cvu.ExpirationDate)作为Yr,
将(*)计为到期应付费用
来自clientvehicleunit cvu
其中cvu.ExpirationDate>='20120101'和cvu.ExpirationDate<'20130101'
按月份分组(cvu.到期日),按年份分组(cvu.到期日)
我需要返回12个月内每月到期的单位数量

如果你的意思是从本月开始,那么

SELECT
    [YYYY.MM]    = CONVERT(varchar(7), cvu.ExpirationDate, 102),
    CountInMonth = COUNT(*)
FROM dbo.clientinfo ci
JOIN clientvehicleunit cvu ON ci.clientid = cvu.clientid
WHERE cvu.ExpirationDate >= DATEADD(m, DATEDIFF(m,0,getdate()), 0)
  AND cvu.ExpirationDate <  DATEADD(m, DATEDIFF(m,0,getdate())+12, 0)
GROUP BY CONVERT(varchar(7), cvu.ExpirationDate, 102)
ORDER BY [YYYY.MM]
选择
[YYYY.MM]=转换(varchar(7),cvu.ExpirationDate,102),
CountInMonth=COUNT(*)
来自dbo.clientinfo ci
在ci.clientid=cvu.clientid上加入clientvehicleunit cvu
其中cvu.ExpirationDate>=DATEADD(m,DATEDIFF(m,0,getdate()),0)
和cvu.ExpirationDate
注:期间以[YYYY.MM]的形式打印,例如2011.01