3つのテーブルを結合し、結合のためにレコードが一致しない2番目と3番目のテーブルでnullを削除します。私は結果が得られましたが、nullを取り除くことができず、なぜこのクエリをSSRSに取り込むとレコードが失われるのでしょうか。SQL Serverの2番目と3番目のテーブルから3つのテーブルに参加し、NULLを削除する
ここに私の3つのテーブルと結果があります。
表A
表B
表C
私は取得していますどのような現在の結果私は青で、結果の上に取得していたから、次のように次のクエリ
で私のクエリがあります。
SELECT
d.ProviderName, d.Service, d.ClientName, d.[StartDate&Time],
d.Duration, d.Status, d.VisitTyoe,
i.IndirectType, i.IndirectScheduleStart, i.IndirectStatus, i.IndirectDuration,
e.[Date], e.[SubProgram], e.[ApprovedMileage],
e.[Status], e.[TravelTime], e.[StipendsTravelTime]
FROM
V_DirectDetails d
FULL OUTER JOIN
V_IndirectDetails i ON d.ProviderName = i.ProviderName
AND d.[StartDate&Time] = i.IndirectScheduleStart
FULL OUTER JOIN
[dbo].[V_ExpenseDetails] e ON d.ProviderName = e.ProviderName
AND d.[StartDate&Time] = e.[Date]
私はこれをSSRSレポートに格納しようとしましたが、次のクエリをストアドプロシージャとして使用すると、最後の行が失われています。ここで
はSSRSストアドプロシージャのクエリである:ここで
@Office NVARCHAR(4000),
@Servicetype NVARCHAR(4000),
@Start DATETIME,
@End DATETIME,
@employee nvarchar(400)
SELECT
d.ProviderName, d.Service as DirectServices, d.ClientName,
d.[StartDate&Time] as "DirectStartDate&Time", d.Duration as DirectDuration,
d.Status as DirectStatus, d.VisitTyoe as DirectVisittype,
i.IndirectType as IndirectVisitType, i.IndirectScheduleStart as "IndirectStartDate&Time",
i.IndirectStatus as IndirectStatus, i.IndirectDuration as IndirectDuration,
e.[Date] as "TravelDate&Time", e.[SubProgram], e.[ApprovedMileage],
e.[Status] as TravelTimeStatus, e.[TravelTime], e.[StipendsTravelTime]
FROM
V_DirectDetails d
FULL OUTER JOIN
V_IndirectDetails i ON d.ProviderName = i.ProviderName
AND d.[StartDate&Time] = i.IndirectScheduleStart
FULL OUTER JOIN
[dbo].[V_ExpenseDetails] e ON d.ProviderName = e.ProviderName
AND d.[StartDate&Time] = e.[Date]
WHERE
CAST(d.[StartDate&Time] AS DATE) BETWEEN '2016-07-28' AND '2016-07-29'
AND d.[siteidname] = 'CountrySide'
AND d.title = 'Painter'
AND d.ProviderName = 'Peter A'
ORDER BY
d.ProviderName
は、私はSSRSクエリを通じて取得していますものです:
私の予想結果はC、表A、Bを配置することですテーブルAは6、テーブルBは4、テーブルCは3つの行を持つので、テーブルの最後の2行にヌル/空を表示し、テーブルのCの最後の3行にヌルを表示する。
可能であれば、ご案内ください。
編集いただきありがとうございます。私は次回これらの変更を確認します。 – user2040021