最初は、医者に行って脳のMRIを撮るべきだと思いました。しかし、私が見ている結果は、別のプログラマーによって確認されました。まったく同じ SQL を実行すると、異なるタイミングで異なる結果が得られます。意味がない。これが私が実行しているものです(無実を保護するためにテーブル名が変更されました)...
declare @customerid int;
declare @locationid int;
declare @reportdate datetime;
set @customerid=2063;
set @locationid=101;
set @reportdate=getdate();
select i.InvoiceDate as [Date], ... from Invoice i (nolock) ...
UNION ALL select ... from Remit e (nolock) ...
UNION ALL select ... from [Rec] r (nolock) join TrTypes t (nolock) on ...
Remit
2 つの select/union all は同一ですが、最初のレコードが表示されたときに 2 番目のレコードがテーブルから返されないことがあります。そして... 時には最初のものも引っ張らないことがあります。私はこれらのクエリを入力SQL Server Management Studio
してヒットし続けF5
ます... 適切な結果が得られる場合もあれば、そうでない場合もあります。
さらに、 を削除しUNION ALL
てクエリを実行すると、から何も返されませんRemit
。
これはロックの問題でしょうか?
このクエリはC#
、詳細レポートを作成するプログラムからのものであり、送金レコードを返しません。Remit
テーブルから要約レコードを作成し、常に同様のクエリからレコードを返す別のプログラムがあります...そのため、詳細プログラム/レポートを確認する必要がありました。
考え?