2つのテーブルからデータをフェッチしようとしていますが、条件に一致するすべてのレコードを取得していないようです。SQLクエリがすべてをフェッチしない
これは私のクエリです:
SELECT Parts."Part Number",Parts."Description",Parts."Location",Parts."Qty In Stock",Parts."LastCost",Parts."Cost Price",Parts."Retail Price",Transact."Type"
FROM Transact
INNER JOIN Parts
ON Transact."PartNumber"=Parts."Part Number"
WHERE Transact.Type = 'Non-stock Purch'
私はそれに対して「非在庫購買」を持つすべてのレコードを引き出した後、部品データベースからその部分の説明を引っ張るしようとしている、それゆえ、なぜI 「説明」、「コスト」、「最終コスト」などが含まれている
私は実行する場合には、必要なすべての情報を取得するつもりはない意味のクエリで間違った何かをやっている:
select * from transact x
where x.Type = 'Non-stock Purch'
order by x.PartNumber
これは268個のレコードを返します。前のクエリはと同じ番号を返しますが、実際には111を返します。
また、これらのクエリを間違って書いている場合、または書式設定が正しくない場合は、教えてください。
ありがとうございました。
「LEFT JOIN」を試して、もう一度268レコードを取得するかどうかを確認してください。そうであれば、実際には他のテーブルのトランザクションごとに一致するレコードはありません。 – mellamokb
データがPartsテーブルにもあることを既に確認していますが、INNER JOINの代わりにLEFT JOINを使用した場合はどうなりますか?予想される行数を返しますか? – Tuan