Sql 如何在新行中仅合计具有数值的列?(未成功的汇总尝试)

Sql 如何在新行中仅合计具有数值的列?(未成功的汇总尝试),sql,sql-server,totals,Sql,Sql Server,Totals,我的查询结果会返回许多内容,如名称、标题、聚合、计数等。 我只需要最后四列底部的一行: AE Client Priority Contract LineNumber Zone Network Days Time Parameter Total Spots Required Cost Per Spot Required Rev Doe, John Dummy Client 2 153370 37 Atlanta AMC MTWTF

我的查询结果会返回许多内容,如名称、标题、聚合、计数等。 我只需要最后四列底部的一行:

AE  Client  Priority    Contract    LineNumber  Zone    Network Days    Time Parameter  Total Spots Required    Cost Per Spot   Required Rev
Doe, John   Dummy Client    2   153370  37  Atlanta AMC     MTWTFSS      19:00 - 00:00       38           1           1           1
Doe, John   Dummy Client    2   153370  40  Atlanta AMC     MTWTFSS      19:00 - 00:00       38           1           2           3
Doe, John   Dummy Client    2   153370  253 Atlanta ESPN    MTWTFSS      19:00 - 00:00       33           5           3           5
Doe, John   Dummy Client    2   153370  256 Atlanta ESPN    MTWTFSS      19:00 - 00:00       33           3           4           7
Doe, John   Dummy Client    2   153370  391 Atlanta GOLF    MTWTFSS      19:00 - 00:00       35           1           5           9
Doe, John   Dummy Client    2   153370  412 Atlanta HALL    MTWTFSS      19:00 - 00:00       42           3           6           11
                                                                                            219           14         21           36
我一直试图使用汇总或与汇总,但它然后分离出我的行。我提供我的全部查询是因为我不想让一些小事情把我搞砸,并通过总结而错过它

Set DATEFIRST 1
SELECT
    AE.LastName+', '+AE.FirstName as 'AE',
    Client.Name as 'Client',
    Eventmaster.PriorityID as 'Priority',
    Conline.ConID as 'Contract',
    Conline.LineNum as 'LineNumber',
    Zone.Name as 'Zone',
    Network.Name as 'Network',
    ((CASE
        WHEN Conline.monday = '1'
            THEN 'M'
            ELSE '-'
    END)+
    (CASE
        WHEN Conline.Tuesday = '1'
            THEN 'T'
            ELSE '-'
    END)+
    (CASE
        WHEN Conline.Wednesday = '1'
            THEN 'W'
            ELSE '-'
    END)+
    (CASE
        WHEN Conline.Thursday = '1'
            THEN 'T'
            ELSE '-'
    END)+
    (CASE
        WHEN Conline.Friday = '1'
            THEN 'F'
            ELSE '-'
    END)+
    (CASE
        WHEN Conline.Saturday = '1'
            THEN 'S'
            ELSE '-'
    END)+
    (CASE
        WHEN Conline.Sunday = '1'
            THEN 'S'
            ELSE '-'
    END)) as 'Days',
    (Left(Convert(Time, DATEADD(ss,Conline.StartTime, 0),0),5))+' - '+(Left(Convert(Time, DATEADD(ss,Conline.StopTime, 0),0),5)) as 'Time Parameter',
    Conline.TotalSpots as 'Total Spots',
    COUNT(EventMaster.Status) as 'Required',
    Conline.Cost as 'Cost Per Spot',
    Conline.Cost * count(eventmaster.status) as 'Required Rev'
FROM EventMaster
    inner join Conline on
    EventMaster.ConlineID = Conline.ConlineID
    inner join Contract on
    Conline.ConID = Contract.ConID
    inner join Zone on
    Conline.ZoneID = Zone.ZoneID
    inner join Network on
    Conline.NetworkID = Network.NetworkID
    inner join AE on
    Contract.AEID = AE.AEID
    inner join Client on
    Contract.ClientID = Client.ClientID

WHERE
    Conline.StartDate >= 19862
    and Conline.StopDate <= 19889
    and EventMaster.Status = 'R'
    and Network.Name NOT IN ('iATT', 'XCSV', 'XCSB','ICOX', 'ISYN', 'ICHT', 'LO3FLO', 'LO3HUNT', 'LO96', 'LOFE', 'INFO', 'IFXN', 'DMAN', 'SMS','VODT','RRR', 'RFI', 'LO', 'NPRD', 'CONT', 'PROD', 'RETL', 'VHXB', 'WEBO', 'INFOMERC','MISC-PKG','WEBB', 'VHXL','AUTO', 'CRWL', 'FEAT', 'LA 46', 'LEASE2', 'LO Knox')
    --and Eventmaster.ClientID <> '7777'
    and EventMaster.PriorityID = '2'
    and totalspots > '0'
    and EventMaster.Deleted <> '1'
GROUP BY
    AE.LastName,
    AE.FirstName,
    Client.Name,
    Eventmaster.PriorityID,
    Conline.ConID,
    Conline.LineNum,
    Zone.Name,
    Network.Name,
    Conline.TotalSpots,
    Conline.Monday,
    Conline.Tuesday,
    Conline.Wednesday,
    Conline.Thursday,
    Conline.Friday,
    Conline.Saturday,
    Conline.Sunday,
    Conline.StartTime,
    Conline.StopTime,
    conline.cost
ORDER BY
    AE.LastName,
    Conline.ConID,
    Zone.Name
SET DATEFIRST 7

看起来它可能试图为每行正下方的每个Conline.LineNum提供一个总数,但我需要整个查询的总数。

您可以通过union子句来完成此操作。但union仅适用于相同数量的属性,因此您还必须使用另一个空白值。像这样的事情:-

SELECT YOUR PREVIOUS QUERY
UNION
SELECT SUM(FIRST_COL), SUM(SECOND_COL), SUM(THIRD_COL), SUM(FOURTH_COL),
       NULL,NULL,NULL,...........

我不确定,但我认为这种方法可以解决您的问题。

有没有办法将我的第一组结果作为一张表格来处理?我该怎么做?编辑:我不能有一个聚合的聚合,所以我不知道如何做,sumI意识到在我的第二个选择中,我不需要包含每行的所有定义因子,所以通过删除这些,我基本上创建了一个总和,而不使用总和。希望这是有道理的。由于某些原因,我没有得到正确的总数,所以我正在检查。