Sql 如何将多个作业成本数据汇总到一个合同中?
我从多个表中提取数据以创建一个报告,该报告提供了所有合同的列表,其中包括最近的发票日期、最近的作业成本日期、总成本金额和总账单金额 我的表格如下:Sql 如何将多个作业成本数据汇总到一个合同中?,sql,reporting-services,Sql,Reporting Services,我从多个表中提取数据以创建一个报告,该报告提供了所有合同的列表,其中包括最近的发票日期、最近的作业成本日期、总成本金额和总账单金额 我的表格如下: 合同详细信息,我在其中提取合同编号、部门、状态、合同金额、账单金额 我提取最后发票日期的AP发票 作业成本,其中我提取作业编号、总成本和上次作业成本日期 连接合同详细信息和作业成本的作业详细信息 我的查询当前编写如下所示。我遇到的问题是工作成本。一个合同可以分配多个作业,因此我的数据集返回多个结果(见下图)。我不知道如何将我的查询或SSRS报告设
- 合同详细信息,我在其中提取合同编号、部门、状态、合同金额、账单金额
- 我提取最后发票日期的AP发票
- 作业成本,其中我提取作业编号、总成本和上次作业成本日期
- 连接合同详细信息和作业成本的作业详细信息
SELECT
Contract,
Department,
ContractDescription,
ContractStatus,
ContractAmt,
Max(RecentInvoice) AS RecentInvoice,
Max(RecentJobCost) AS RecentJobCost,
Sum(BilledAmt) AS TotalBilledAmt
FROM (SELECT
c.Contract,
c.Department,
c.Contract + ' ' + c.Description AS ContractDescription,
c.ContractStatus,
c.ContractAmt,
c.BilledAmt,
(SELECT Max(ap.Mth) FROM APInvoice ap WHERE j.JCCo = ap.JCCo AND j.Job = ap.Job) AS RecentInvoice,
(SELECT Max(jc.Mth) FROM JobCost jc WHERE j.JCCo = jc.JCCo AND j.Job = jc.Job) AS RecentJobCost,
(SELECT Sum(jc.ActualCost) FROM JobCost jc WHERE j.JCCo = jc.JCCo AND j.Job = jc.Job) AS ActualCost,
(SELECT DISTINCT jc.Job FROM JobCost jc WHERE j.JCCo = jc.JCCo AND j.Job = jc.Job) AS JobNumber,
c.udProjFolderRecd,
c.udBillStatus
FROM ContractDetails c
LEFT JOIN JobDetails j ON j.JCCo = c.JCCo AND j.Contract = c.Contract
WHERE c.JCCo = ( @Company )
AND c.ContractStatus IN ( @ContractStatus )
AND c.Department IN ( @Department )) contractsummary
GROUP BY Contract,
Department,
ContractDescription,
ContractStatus,
ContractAmt
如果希望每行显示1个合同,您希望如何合并无法求和的列?例如作业编号、上次作业成本等@88-作业编号可以删除。我现在只有它在那里作为参考,以了解数据。对于上次发票和上次作业成本,我希望所有作业的最新日期。
SELECT
Contract,
Department,
ContractDescription,
ContractStatus,
ContractAmt,
Max(RecentInvoice) AS RecentInvoice,
Max(RecentJobCost) AS RecentJobCost,
Sum(BilledAmt) AS TotalBilledAmt
FROM (SELECT
c.Contract,
c.Department,
c.Contract + ' ' + c.Description AS ContractDescription,
c.ContractStatus,
c.ContractAmt,
c.BilledAmt,
(SELECT Max(ap.Mth) FROM APInvoice ap WHERE j.JCCo = ap.JCCo AND j.Job = ap.Job) AS RecentInvoice,
(SELECT Max(jc.Mth) FROM JobCost jc WHERE j.JCCo = jc.JCCo AND j.Job = jc.Job) AS RecentJobCost,
(SELECT Sum(jc.ActualCost) FROM JobCost jc WHERE j.JCCo = jc.JCCo AND j.Job = jc.Job) AS ActualCost,
(SELECT DISTINCT jc.Job FROM JobCost jc WHERE j.JCCo = jc.JCCo AND j.Job = jc.Job) AS JobNumber,
c.udProjFolderRecd,
c.udBillStatus
FROM ContractDetails c
LEFT JOIN JobDetails j ON j.JCCo = c.JCCo AND j.Contract = c.Contract
WHERE c.JCCo = ( @Company )
AND c.ContractStatus IN ( @ContractStatus )
AND c.Department IN ( @Department )) contractsummary
GROUP BY Contract,
Department,
ContractDescription,
ContractStatus,
ContractAmt