フィルターごとにすべての購入インデントと、これらのインデント行の対応する購入行を表示する必要があるレポートを作成しています。私の条件に従って購入行が見つからない場合は、NULL 値を返す必要があります。しかし、レポートには、購買明細にレコードがないインデントは表示されません。INH、INL、PL、PH の 4 つのテーブルに参加しています。クエリを以下に示します。
SELECT
INH.No_
,INH.[Approved Date]
,INH.Indentor
,INL.No_ AS ItemCode
,INL.description
,INL.Description2
,INL.Req_Quantity
,INL.[Unit of Measure]
,PL.[Document No_]
,PH.[Order Date]
,PL.Quantity AS OrderedQuantity
,PL.[Quantity Received]
FROM [ICTL | HYDERABAD$Indent Header] AS INH
INNER JOIN [ICTL | HYDERABAD$Indent Line] AS INL ON INH.No_ = INL.[Document No_]
LEFT OUTER JOIN [ICTL | HYDERABAD$Purchase Line] AS PL ON INL.[Document No_] = PL.[Indent No_] AND INL.[Line No_] = PL.[Indent Line No_]
LEFT OUTER JOIN [ICTL | HYDERABAD$Purchase Header] AS PH ON PL.[Document No_] = PH.No_
WHERE (UPPER(INH.Indentor) = UPPER(@Name)
OR @Name IS NULL)
AND (INL.No_ <> '')
AND (INH.[Approved Date] >= @StartDate
OR @StartDate IS NULL)
AND (INH.[Approved Date] <= @EndDate
OR @EndDate IS NULL)
AND (PL.[Document Type] = 1)
ORDER BY ItemCode