Sql server 特定行的和

Sql server 特定行的和,sql-server,tsql,Sql Server,Tsql,我有一些这样的疑问 选择TotalAmount/选择DateDiffdd、StartDate、DateAdddd、1、EndDate 总数为个月 从竞选活动 其中StartDate>=DATEADDMONTH、DATEDIFFMONTH、0、GETDATE、0 和StartDate

我有一些这样的疑问

选择TotalAmount/选择DateDiffdd、StartDate、DateAdddd、1、EndDate 总数为个月 从竞选活动 其中StartDate>=DATEADDMONTH、DATEDIFFMONTH、0、GETDATE、0 和StartDate 此查询搜索本月的活动,并从TotalAmount中获取每日付款作为行。但我需要他们的总数

问题是,我怎样才能得到这个查询的总和

编辑1: 表格示例

总金额开始日期结束日期 1980 2018-05-01 00:00:00.0000000 2018-05-31 00:00:00.0000000 1271 2018-05-01 00:00:00.0000000 2018-06-01 00:00:00.0000000 2015 2018-05-01 00:00:00.0000000 2018-06-01 00:00:00.0000000 238 2018-05-01 00:00:00.0000000 2018-05-08 00:00:00.0000000 2018-05-01 00:00:00.0000000 2018-06-01 00:00:00.0000000

以及他们的结果

638709677419355 39,71875 62,96875 29,75 0这将需要聚合函数

Select SUM(TotalAmountForMonth) from (
SELECT TotalAmount/(select DateDiff(dd,StartDate, DateAdd(dd, 1,EndDate)))
 AS TotalAmountForMonth
FROM Campaign 
WHERE StartDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0)
  AND StartDate <  DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 1)
)
这将需要聚合函数

Select SUM(TotalAmountForMonth) from (
SELECT TotalAmount/(select DateDiff(dd,StartDate, DateAdd(dd, 1,EndDate)))
 AS TotalAmountForMonth
FROM Campaign 
WHERE StartDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0)
  AND StartDate <  DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 1)
)
您正在寻找聚合函数

Select SUM(TotalAmountForMonth) from (
SELECT TotalAmount/(select DateDiff(dd,StartDate, DateAdd(dd, 1,EndDate)))
 AS TotalAmountForMonth
FROM Campaign 
WHERE StartDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0)
  AND StartDate <  DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 1)
)
为了保持代码整洁,我将使用封装查询并将结果汇总如下:

;with totalAmountForMonth (
    SELECT TotalAmount/(select DateDiff(dd,StartDate, DateAdd(dd, 1,EndDate)))
     AS TotalAmountForMonth
    FROM Campaign 
    WHERE StartDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0)
      AND StartDate <  DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 1);
)

select 
    sum(TotalAmontForMonth) as SumTotalAmount
from
    totalAmountForMonth;
您正在寻找聚合函数

Select SUM(TotalAmountForMonth) from (
SELECT TotalAmount/(select DateDiff(dd,StartDate, DateAdd(dd, 1,EndDate)))
 AS TotalAmountForMonth
FROM Campaign 
WHERE StartDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0)
  AND StartDate <  DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 1)
)
为了保持代码整洁,我将使用封装查询并将结果汇总如下:

;with totalAmountForMonth (
    SELECT TotalAmount/(select DateDiff(dd,StartDate, DateAdd(dd, 1,EndDate)))
     AS TotalAmountForMonth
    FROM Campaign 
    WHERE StartDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0)
      AND StartDate <  DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 1);
)

select 
    sum(TotalAmontForMonth) as SumTotalAmount
from
    totalAmountForMonth;

你能澄清一下要求吗?那奇怪的划分是怎么回事?我一辈子都不明白拿TotalAmount/datediff的意义……你想做什么?这将是一个很好的起点。你能澄清一下要求吗?那奇怪的划分是怎么回事?我一辈子都不明白拿TotalAmount/datediff的意义……你想做什么?这将是一个很好的起点。你能用一些样本数据和输出来澄清需求吗?你能用一些样本数据和输出来澄清需求吗