を与えていないSQLクエリに参加し、次のように私は私と一緒に別のクエリを持って次のように参加は、所望の結果
SELECT c.id
FROM claim c,
company co,
customer cu
WHERE c.company_id = co.id
AND c.customer_id = cu.id
AND co.company_code = 'LTO'
AND cu.customer_no = '021540'
AND c.invoice_number IS NOT NULL
AND c.invoice_date IS NULL
AND c.invoice_number = '20170331'
SELECT Sum(price)
FROM replaced_part
WHERE claim_id IN (628099, 674047, 1182523, 1282549,
1479834, 1480585, 1487452, 1515238);
SELECT Sum(price)
FROM allowance
WHERE claim_id IN (628099, 674047, 1182523, 1282549,
1479834, 1480585, 1487452, 1515238);
私はグループにしようとしていた一緒に、上記のすべてのクエリのSQLエクイを使用して一つに:
select co.company_Code,
cu.customer_No,
c.invoice_Number,
sum(r.price),
sum(a.price)
FROM claim c INNER JOIN company co ON c.COMPANY_ID=co.ID
INNER JOIN customer cu ON c.CUSTOMER_ID=cu.ID
INNER JOIN replaced_part r ON r.claim_id=c.id
INNER JOIN allowance a ON a.claim_id = c.id
WHERE co.company_code = 'LTO' and cu.customer_no='021540' and
c.INVOICE_NUMBER is not null and c.INVOICE_DATE is null and
c.INVOICE_NUMBER='20170331'
GROUP BY co.company_Code, cu.customer_No, c.invoice_Number
しかし、上記で定義した3つの別々のクエリを実行した後に得られた結果(クエリは正常に実行されますが、合計は正しくありません)が得られません... equi joinを使用して作成されたクエリの問題は何ですか?
テーブルとの関係は、クレーム - >(1対1) - >企業 - >(1対1) - >顧客 - >(1対多) - > Replaced_Part - >(1対多) - >手当
テーブルをリストする古くからの標準的でない構文の代わりに適切なANSI結合(INNER JOINとON句)を使用して書き直し、次にWHERE句を使用してフィルタリングします。 – pmbAustin
クエリごとに1つの 'CTE'を使用し、結果を結合します。 –
INNER JOINを使用してクエリを書き換えます。 –