Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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/4/regex/19.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 2005_Sum - Fatal编程技术网

SQL和混淆

SQL和混淆,sql,sql-server-2005,sum,Sql,Sql Server 2005,Sum,我已对我的数据运行以下查询:- SELECT CONTRACTNAME, AccountNo, TransDate, JournalNo, AuditTrail, Description, CONTRACTNUMBER, GROUPING(CONTRACTNUMBER) as CONTRACTNUM

我已对我的数据运行以下查询:-

SELECT     CONTRACTNAME,
           AccountNo,
           TransDate, 
           JournalNo,
           AuditTrail,           
           Description,       
           CONTRACTNUMBER,
           GROUPING(CONTRACTNUMBER) as CONTRACTNUMBER,   
           SUM(PAFeebillamount)as Total  
FROM       SRVS.dbo.BTQGLDistributionsWithProjectCodesHM
WHERE      TransDate > '2012' AND CONTRACTNUMBER <> '00900'
GROUP BY   CONTRACTNAME,  
           AccountNo,   
           TransDate,
           JournalNo, 
           AuditTrail,    
           Description,      
           CONTRACTNUMBER with rollup  
ORDER BY   GROUPING (CONTRACTNUMBER) 
选择合同名称,
不,
转换日期,
杂志号,
审计线索,
描述
合同编号,
将(合同编号)分组为合同编号,
总金额(PAFeebillamount)
来自SRVS.dbo.BTQGLDistributionsWithProjectCodesHM
其中TransDate>'2012'和合同编号'00900'
按合同名称分组,
不,
转换日期,
杂志号,
审计线索,
描述
带汇总的合同编号
分组订购(合同编号)
这给了我结果:-

如何更改此项,以便获得每个合同编号的单行总计。因此,它看起来像下面的示例:-

此时此刻,我并不担心会计号/日记账号等,因为它只是一个总结

只是想了解按合同编号汇总我的组的最佳方法吗?

选择合同名称、合同编号、分组(合同编号)作为合同编号
SELECT CONTRACTNAME, CONTRACTNUMBER, grouping(CONTRACTNUMBER) as CONTRACTNUMBER
SUM(PAFeebillamount)as Total
FROM SRVS.dbo.BTQGLDistributionsWithProjectCodesHM 
WHERE TransDate > '2012' AND CONTRACTNUMBER <> '00900' 
GROUP BY 
  CONTRACTNAME,
  CONTRACTNUMBER with rollup
ORDER BY GROUPING (CONTRACTNUMBER)
总金额(PAFeebillamount) 来自SRVS.dbo.BTQGLDistributionsWithProjectCodesHM 其中TransDate>'2012'和合同编号'00900' 分组 合同名称, 带汇总的合同编号 分组订购(合同编号)

这应该给你的每个合同的总数。获得多个结果的原因是,您正在按合同名称、账户、日期、日记号、审核跟踪和描述进行分组。如果您想要一个完整的总数(每个合同号一个),那么您只需按合同号进行分组。

因为您不必为
账户号、转换日期等选择什么而烦恼,您可以使用
MAX
作为聚合函数,例如:

SELECT
  CONTRACTNAME, 
  MAX(AccountNo), 
  MAX(TransDate), 
  MAX(JournalNo),
  MAX(AuditTrail),
  MAX(Description),
  CONTRACTNUMBER, 
  GROUPING(CONTRACTNUMBER) as CONTRACTNUMBER, 
  SUM(PAFeebillamount)as Total
FROM SRVS.dbo.BTQGLDistributionsWithProjectCodesHM 
WHERE TransDate > '2012' 
  AND CONTRACTNUMBER <> '00900' 
GROUP BY 
  CONTRACTNAME,
  CONTRACTNUMBER with rollup
ORDER BY GROUPING (CONTRACTNUMBER)
选择合同名称,
”“不,
""转换日期,,
""没有,,
""审计线索,,
"说明,,
合同编号,
将(合同编号)分组为合同编号,
总金额(PAFeebillamount)
来自SRVS.dbo.BTQGLDistributionsWithProjectCodesHM
其中TransDate>'2012'和合同编号'00900'
按合同名称分组,
带汇总的合同编号
分组订购(合同编号)

但是如果您不介意的话,在
账号
日志号
等中返回什么?这是另一个问题。目前对空值或零感到满意。我甚至可能会把它们从展览中拿出来。只是想看看最好的方法,尝试先得到总金额
SELECT
  CONTRACTNAME,
  CONTRACTNUMBER, 
  GROUPING(CONTRACTNUMBER) as CONTRACTNUMBER, 
  SUM(PAFeebillamount)as Total
FROM SRVS.dbo.BTQGLDistributionsWithProjectCodesHM 
WHERE TransDate > '2012' 
  AND CONTRACTNUMBER <> '00900' 
GROUP BY 
  CONTRACTNAME,
  CONTRACTNUMBER with rollup
ORDER BY GROUPING (CONTRACTNUMBER)
SELECT     CONTRACTNAME,
           '' AccountNo,
           '' TransDate, 
           '' JournalNo,
           '' AuditTrail,           
           '' Description,       
           CONTRACTNUMBER,
           GROUPING(CONTRACTNUMBER) as CONTRACTNUMBER,   
           SUM(PAFeebillamount)as Total  
FROM       SRVS.dbo.BTQGLDistributionsWithProjectCodesHM
WHERE      TransDate > '2012' AND CONTRACTNUMBER <> '00900'
GROUP BY   CONTRACTNAME,                  
           CONTRACTNUMBER with rollup  
ORDER BY   GROUPING (CONTRACTNUMBER)