1

SQL クエリに問題があり、それを理解できないようです。私はそれについてすべて間違っていると確信しています。

基本的に、PRVDR_NUM と ITM_VAL があります。関連する ITM_VALS を合計したいので、各 PRVDR_NUM には「合計された」ITM_VAL が 1 つだけ含まれます [SumReimb はエイリアスです]。

PRVDR_NUM は実際には別のテーブルにあります。両方のテーブルにある RPT_REC_NUM の内部結合を使用して関連付けました。

これは非常にうまくいかない例です。

SELECT  PRVDR_NUM,SUM(ITM_VAL) as SumReimb FROM hha2011num
INNER JOIN hha2011rpt ON hha2011num.RPT_REC_NUM = hha2011rpt.RPT_REC_NUM 
WHERE (WKSHT_CD='D000000' AND LINE_NUM = '01201') AND (CLMN_NUM='0100' OR CLMN_NUM='0200')

GROUP BY PRVDR_NUM,ITM_VAL ORDER BY ITM_VAL

主に合計するのは CLMN_NUM 0100 と 0200 で、それぞれに異なるアイテム値があり、それらを合計してから PRVDR_NUM でグループ化します。

助言がありますか?

私が SQL で抱えている主な問題は、GROUP、Aggregates、および Calculated フィールドです。どうすればいいのかわからない... すべてを結び付ける. 約2日前にSQLを学び始めました。

この行の下を編集------------

これは 2 つの異なるものですが、同じクエリである必要があります。

SELECT  RPT_REC_NUM,SUM(ITM_VAL) SumReimb FROM hha2011num
WHERE (WKSHT_CD='D000000' AND LINE_NUM = '01201') AND CLMN_NUM in('0100','0200')

GROUP BY RPT_REC_NUM ORDER BY SumReimb

SELECT  PRVDR_NUM,SUM(ITM_VAL) as SumReimb FROM hha2011num
INNER JOIN hha2011rpt ON hha2011num.RPT_REC_NUM = hha2011rpt.RPT_REC_NUM 
WHERE WKSHT_CD='D000000' AND LINE_NUM = '01201' AND CLMN_NUM in('0100','0200')
GROUP BY PRVDR_NUM ORDER BY SumReimb

今; それらの間のデータのほとんどは同じですが、一方が他方よりも 39 エントリ多いことを除いて [上の方がそうです]。これがおそらく、2 番目のほんの一握りのデータが、私の予想よりも桁違いに高い理由です。

4

1 に答える 1

2
SELECT  PRVDR_NUM,SUM(ITM_VAL) as SumReimb FROM hha2011num
INNER JOIN hha2011rpt ON hha2011num.RPT_REC_NUM = hha2011rpt.RPT_REC_NUM 
WHERE WKSHT_CD='D000000' AND LINE_NUM = '01201' AND CLMN_NUM in('0100','0200')
GROUP BY PRVDR_NUM ORDER BY PRVDR_NUM

group by 句と order by 句から ITM_VAL を削除してください。また、WHERE 句に 1 つの小さな変更を加えました。または、列 CLMN_NUM の値をチェックする代わりに、"IN" を使用できます。

于 2013-08-21T17:57:17.060 に答える