0

私はSQLの初心者であり、ほとんどトレーニングを受けていないため、非常に簡単な回答をいただければ幸いです。参加者の割り当てのクエリを取得しようとしていますが、各楽しみのすべての割り当てを合計する必要があります。私は現在、次のものを持っています:

select external_plan,
   participant_tax_id,
   external_vehicle,
sum (decimal(alloc_rate,15,2)),
   money_type
from trc.vst_partalloc
where external_plan='RF00580'
and money_type='101'
group by alloc_rate,
     external_plan,
   participant_tax_id,
   external_vehicle,
   money_type

これにより、次の例が返されます。

EXTERNAL_PLAN   PARTICIPANT_TAX_ID  EXTERNAL_VEHICLE    Alloc_Rate    MONEY_TYPE

RF00580                  #########  DFCEX              0.03 101
RF00580                  #########  ACRNX              0.06 101
RF00580                  #########  STSVX              0.06 101
RF00580                  #########  VISGX             0.06  101
RF00580                  #########  VMVIX              0.06 101
RF00580                  #########  RERGX              0.09 101
RF00580                  #########  DODGX             0.12  101
RF00580                  #########  DRLCX              0.12 101
RF00580                  #########  ABNAK             0.20  101
RF00580                  #########  PTTRX              0.20 101

したがって、#########はこれらの行全体で 1 人の参加者を表し、割り当て率の合計は 100 になります。必要なのは、 を表示せずexternal_vehicleに を 100 に合計する 1 つの行を返すalloc_rateことです。これは意味がありますか? どんな助けでも大歓迎です、事前に感謝します!

4

2 に答える 2

0

簡単な答えは、から amd を削除することexternal_vehicleです:alloc_rategroup by

select external_plan, participant_tax_id,
       sum (decimal(alloc_rate,15,2)),
       money_type
from trc.vst_partalloc
where external_plan='RF00580' and money_type='101'
group by external_plan, participant_tax_id, money_type

いくつかのコメント:

where(1)節と節の両方に external_plan と money_type を含める必要はありませんgroup by。それらを単一の値に制限している場合は、次のクエリを使用できます。

select participant_tax_id,
       sum (decimal(alloc_rate,15,2))
from trc.vst_partalloc
where external_plan='RF00580' and money_type='101'
group by participant_tax_id

(2)それが数値型であると仮定するとalloc_rate、出力目的で変換を行っています。合計のに変換を行う必要があります。

select external_plan, participant_tax_id,
       decimal(sum (alloc_rate),15,2),
       money_type
from trc.vst_partalloc
where external_plan='RF00580' and money_type='101'
group by external_plan, participant_tax_id, money_type
于 2013-03-26T20:40:06.487 に答える
0

select および group by 句から External_vehicle を削除するだけでよいようです。

于 2013-03-26T19:58:52.123 に答える