2 つのテーブルから結果を取得するクエリに取り組んでいます。エントリごとに 5 つのレコード # または (DOC#) ではなく、エントリごとに 1 つのレコードで複数の結果を取得するために、同じテーブルに複数の内部結合がありました。
基本クエリの結果
Date GL# AccountName AccountDesc Amount Doc# FieldG
00:00.0 51010 Account1 Description1 -3230.77 494634 TECH
00:00.0 51010 Account1 Description1 -3230.77 494634 220
00:00.0 51010 Account1 Description1 -3230.77 494634 SGA
00:00.0 51010 Account1 Description1 -3230.77 494634 TX
00:00.0 51010 Account1 Description1 -3230.77 494634
同じテーブルに複数の内部結合がある場合
Date GL# AccountName AccountDesc Amount Doc#
00:00.0 51010 Account1 Description1 -3230.77 494634 TECH 220 SGA TX
使用しているクエリ
SELECT
GLE.Date
,GLE.GL#
,GLE.AccountName
,GLE.AccountDesc
,GLE.Amount
,GLE.Doc#
,LED.FieldG
,LED2.FieldH
,LED3.FieldI
,LED4.FieldJ
,LED5.Unit
FROM [Company, Inc$G_L Entry] GLE
INNER JOIN [Company, Inc$Ledger Entry Dimension] LED
ON GLE.[Doc#]=LED.[Doc#]
INNER JOIN [Company, Inc$Ledger Entry Dimension] LED2
ON GLE.[Doc#]=LED2.[Doc#]
INNER JOIN [Company, Inc$Ledger Entry Dimension] LED3
ON GLE.[Doc#]=LED3.[Doc#]
INNER JOIN [Company, Inc$Ledger Entry Dimension] LED4
ON GLE.[Doc#]=LED4.[Doc#]
JOIN [Company, Inc$Ledger Entry Dimension] LED5
ON GLE.[Doc#]=LED5.[Doc#]
WHERE LED.Date Between '20120101' and '20130101'
AND GLE.[G_L Account No_]between '50000' and '59999'
AND GLE.GD1C between '0000' and '0999'
AND GLE.[Doc#]='494634'
AND LED.[DC_1]='FieldG'
AND LED2.[DC_1]='FieldH'
AND LED3.[DC_1]='FieldI'
AND LED4.[DC_1]='FieldJ'
AND LED5.[DC_1]='UNIT'
ORDER BY GLE.Date
結果を制限するためにテストできるように、特に DOC# にハード値を使用しています。このレコードの単位フィールドがあることはわかっていますが、それは空白です。クエリを実行すると、結果が返されません。一致するレコードがないため、LED5 テーブルに INNER JOIN を使用しているため、失敗していることがわかります。他のすべてのフィールドには必須のデータがあるため、失敗することはありません。初心者として、データを含み、空白のレコードを取得するには、このクエリで何を変更できますか? ありがとう。