Sql server 特定行的和
我有一些这样的疑问 选择TotalAmount/选择DateDiffdd、StartDate、DateAdddd、1、EndDate 总数为个月 从竞选活动 其中StartDate>=DATEADDMONTH、DATEDIFFMONTH、0、GETDATE、0 和StartDateSql server 特定行的和,sql-server,tsql,Sql Server,Tsql,我有一些这样的疑问 选择TotalAmount/选择DateDiffdd、StartDate、DateAdddd、1、EndDate 总数为个月 从竞选活动 其中StartDate>=DATEADDMONTH、DATEDIFFMONTH、0、GETDATE、0 和StartDate
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的意义……你想做什么?这将是一个很好的起点。你能用一些样本数据和输出来澄清需求吗?你能用一些样本数据和输出来澄清需求吗