1

出力をテストするためにこれら2つのクエリがあります

SELECT DISTINCT( providerId ), 
               SUM(( claimCount )), 
               SUM(paidAmount), 
               SUM(provallowed), 
               SUM(patresp), 
               provId, 
               cliCode, 
               asctype, 
               payerid, 
               procCode 
FROM   TempCounts tt, 
       TempClient tct 
WHERE  ( tct.npi = tt.provid 
          OR tct.txcode = tt.provid ) 
       AND CLICODE = 'XXX' 
GROUP  BY tt.provid, 
          providerId, 
          cliCode, 
          asctype, 
          payerid, 
          procCode 

--

SELECT DISTINCT( providerid ), 
               claimCount, 
               paidamount, 
               provallowed, 
               patresp, 
               provid, 
               CLICODE, 
               asctype, 
               payerid, 
               proccode 
FROM   TempCounts tt, 
       TempClient tct 
WHERE  ( tct.npi = tt.provid 
          OR tct.txcode = tt.provid ) 
       AND CLICODE = 'XXX' 

2番目のクエリからの集計されていない結果を合計すると、最初のクエリで集計された値が得られるはずですが、私のデータセットは最初のデータセットのようになります

15086   7   216.16  0.00    35.00   1609950203  XXX     216     72040
15086   7   227.36  0.00    21.00   1609950203  XXX     216     72070

2 番目のデータ セット

15086   1   30.88   0.00    5.00    1609950203  XXX     216     72040
15086   1   32.48   0.00    3.00    1609950203  XXX     216     72070

私の人生では、私が欠けているものを見ることができず、それを見つめているので、コードが見えません。助言がありますか?

4

2 に答える 2

3

DISTINCT オプションにより、2 つのデータ セットが異なる場合があります。

したがって、集約されていないクエリは、互いに異なる限られた数の行のみを返します。

最初のクエリでは、結果にすべてのグループ化列があるため、DISTINCT オプションは役に立ちません。

于 2012-04-06T21:23:04.657 に答える
0

私はついにそれを理解しました。tempClient テーブルには、npi および txcode フィールドに基づく複数のレコードがあるため (つまり、レコードには、各 npi に対して txcode の複数のインスタンスを含めることができます。mysql に対する同じクエリで正しい結果が得られたので、それをフィルタリングしていると思いました。解決策は tt を追加することでした。 .npi および tt.txcode を groupby ステートメントに追加します。

于 2012-04-06T21:41:01.313 に答える