Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.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_Totals - Fatal编程技术网

如何获取每个月和年初至今的总计(SQL查询)

如何获取每个月和年初至今的总计(SQL查询),sql,sql-server,totals,Sql,Sql Server,Totals,我需要得到每个公司每个月所有PMT的总数,然后得到到年迄今为止月份的完整“总数”YTD这是我的记录表。还有它下面的编解码器 Jan-14 Feb-14 Mar-14 Apr-14 2014 YTD Alpha corp 10 24 18 10 62 zeen corp 10 14 16 21 61 open corp 20 6 18 12 56 geez corp 15 5 14 8 42 mine corp 5 7

我需要得到每个公司每个月所有PMT的总数,然后得到到年迄今为止月份的完整“总数”YTD这是我的记录表。还有它下面的编解码器

    Jan-14  Feb-14  Mar-14  Apr-14  2014 YTD
Alpha corp  10  24  18  10  62
zeen corp   10  14  16  21  61
open corp   20  6   18  12  56
geez corp   15  5   14  8   42
mine corp   5   7   16  12  40
little corp 10  5   7   10  32
Vize corp   4   5   20  2   31
deng corp   5   9   8   9   31
nine corp   7   5   8   10  30
wash corp   5   8   7   10  30
hass corp   6   9   8   7   30
2014 YTD    77  97  144 222 445
2014年总产量

    Jan-14  Feb-14  Mar-14  Apr-14  2014 YTD
Alpha corp  10  24  18  10  62
zeen corp   10  14  16  21  61
open corp   20  6   18  12  56
geez corp   15  5   14  8   42
mine corp   5   7   16  12  40
little corp 10  5   7   10  32
Vize corp   4   5   20  2   31
deng corp   5   9   8   9   31
nine corp   7   5   8   10  30
wash corp   5   8   7   10  30
hass corp   6   9   8   7   30
2014 YTD    77  97  144 222 445

    Jan-14  Feb-14  Mar-14  Apr-14  2014 YTD
Alpha corp  10  24  18  10  62
zeen corp   10  14  16  21  61
open corp   20  6   18  12  56
geez corp   15  5   14  8   42
mine corp   5   7   16  12  40
little corp 10  5   7   10  32
Vize corp   4   5   20  2   31
deng corp   5   9   8   9   31
nine corp   7   5   8   10  30
wash corp   5   8   7   10  30
hass corp   6   9   8   7   30
2014 YTD    77  97  144 222 445
假设使用SQL Server(基于语法),您可以执行以下操作:

    Jan-14  Feb-14  Mar-14  Apr-14  2014 YTD
Alpha corp  10  24  18  10  62
zeen corp   10  14  16  21  61
open corp   20  6   18  12  56
geez corp   15  5   14  8   42
mine corp   5   7   16  12  40
little corp 10  5   7   10  32
Vize corp   4   5   20  2   31
deng corp   5   9   8   9   31
nine corp   7   5   8   10  30
wash corp   5   8   7   10  30
hass corp   6   9   8   7   30
2014 YTD    77  97  144 222 445
select a.first_name + a.last_name,
       sum(case when Month(b.funded_date) = 1 Then 1 else 0 End) Janurary, 
       sum(case when Month(b.funded_date) = 2 Then 1 else 0 End) Feburary ,
       sum(case when Month(b.funded_date) = 3 Then 1 else 0 End) March,
       sum(case when Month(b.funded_date) = 4 Then 1 else 0 End) April,
       sum(case when Month(b.funded_date) <= 4 then 1 else 0 end) as YTD
from tContact a Inner join
     tContract b
     On a.contact_id = b.contract_id
Group by first_name + last_name with rollup;
选择a.first\u name+a.last\u name,
金额(如果月份(b.U日期)=1,则1,否则0结束)1月,
总和(如果月份(b.U日期)=2,则1,否则0结束)2月,
总和(如果月份(b.U日期)=3,则1,否则0结束)3月,
总和(如果月份(b.U日期)=4,则1,否则0结束)4月,

sum(case when Month(b.funded_date))这是一个显示问题,例如,您需要在客户端代码中执行某些操作。您的查询将正确返回每月数据。在所有这些之后,SQL的工作不是为您提供总计。您可以尝试mysql的“with rollup”选项,但最好在客户端求和。您使用的是什么数据库?我使用的是MYSQL(Sql server 2008 r2)MYSQL不是Sql server