-2

最初は、医者に行って脳の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 ...

Remit2 つの select/union all は同一ですが、最初のレコードが表示されたときに 2 番目のレコードがテーブルから返されないことがあります。そして... 時には最初のものも引っ張らないことがあります。私はこれらのクエリを入力SQL Server Management Studioしてヒットし続けF5ます... 適切な結果が得られる場合もあれば、そうでない場合もあります。

さらに、 を削除しUNION ALLてクエリを実行すると、からも返されませんRemit

これはロックの問題でしょうか?

このクエリはC#、詳細レポートを作成するプログラムからのものであり、送金レコードを返しません。Remitテーブルから要約レコードを作成し、常に同様のクエリからレコードを返す別のプログラムがあります...そのため、詳細プログラム/レポートを確認する必要がありました。

考え?

4

1 に答える 1