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

因此,#########代表这些行中的一个参与者,分配率加起来为 100,我需要的是返回的一行不显示external_vehicle但总和alloc_rate为 100 - 这有意义吗?任何帮助表示赞赏,在此先感谢!

4

2 回答 2

0

看起来您需要做的就是从 select 和 group by 子句中删除 External_vehicle 。

于 2013-03-26T19:58:52.123 回答
0

简单的答案是从以下位置删除external_vehicleamd :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

一些评论:

(1) 您不需要在where子句和group by子句中都包含 external_plan 和 money_type。如果您将它们限制为单个值,则可以使用查询:

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 回答