(コメント欄に入れても過言で)...後でお答えします。
nJobID = 3524の目的は何ですか、あなたは1つの仕事に興味がありますか?その場合、JOBのWHERE句から戻されたすべてのジョブに関係なく、ジョブ3525に対してのみ合計が得られます。
私はクエリを処理しますが、DISTINCTは必要ありません。
さらに、あなたはjobCharge.nArrcInv、.nCostInv、.nSaleInvを持っていますが、後でSUM(jobcharge.nAccrInv)を使用します...あなたのINTENTは、未払いのコスト、実際のコストの合計、合計仕事の説明ごとの売上の???他の仕事のヘッダーの内容を含む?
ジョブ・アクティビティPLUSジョブ全体にわたるすべての売上高の総計の種類ごとの両方の個々のサブグループ合計したいようですが、多分あなたは何をしたい、これはある...見える...
SELECT
Job.cJobRef AS JobRef,;
Job.cName AS Customer_Name, ;
Job.cJobType AS JobType, ;
Job.cJobMode AS JobMode, ;
Job.cOrigin AS Org,;
Job.cDestination AS Dest,;
Job.cOwner AS Owner,;
JCSubTotals.Invoice_Desc,;
JCSubTotals.Accrued_PerDesc,;
JCSubTotals.Actual_PerDesc,;
JCSubTotals.Sales_PerDesc,;
JCFinalTotals.Total_Accrued,;
JCFinalTotals.Total_Actual,;
JCFinalTotals.Total_Sales;
from ;
(select jc.nJobID,;
jc.cInvoiceDescr as Invoice_Desc, ;
sum(jc.nAccrInv) as Accrued_PerDesc, ;
sum(jc.nCostInv) as Actual_PerDesc, ;
sum(jc.nSaleInv) as Sales_PerDesc ;
from ;
JobCharge jc;
where ;
jc.nJobID = 3524 ;
group by ;
jc.nJobID,;
jc.cInvoiceDescr) JCSubtotals ;
JOIN ;
(select jc.nJobID,;
sum(jc.nAccrInv) as Total_Accrued, ;
sum(jc.nCostInv) as Total_Actual, ;
sum(jc.nSaleInv) as Total_Sales ;
from ;
JobCharge jc;
where ;
jc.nJobID = 3524 ;
group by ;
jc.nJobID) JCFinalTotals ;
ON JCSubtotals.nJobID = JCFinalTotals.nJobID ;
JOIN Job ;
on JCSubtotals.nJobID = Job.nID;
私は実際に、すべての行に表示する列をもう少し与えました。仕事ごとの合計、そして全体の仕事(未払、実際、売り上げ)と比較した合計。気にしない列はいつでも無視することができますが、これは私があなたが望むと思う方法を提供します。
さらに、(提供されていないので)私が想定している "JOB"テーブルへの最後の結合では、その主キー列は "nJob_ID"ではなく "nID"(jobChargeテーブルの外部キー)です。
これらの結果をジョブのセット全体に渡りたい場合は、実際にはJobChargeクエリからそれぞれのWHERE句を削除するだけです。
@Ross、知覚された結果からのクエリを含めるように修正 – DRapp