计算一个表中的ID,乘以另一个表中的值

时间:2013-12-26 21:16:21

标签: mysql

我正在尝试编写单个查询以获取一个表中单个ID的计数,然后获取每个计数并将它们乘以另一个表中的字段以获得不同的总计。例如,一个表将具有这些记录:

cat_id_FK     
---------
100
100
101
101
101

和另一张表这些记录:

 cat_id_PK  |  cat_amount
----------     ----------
100            500.00
101            100.00

我希望结果集为:

cat_id_PK  |  total
---------     -------
100           1000.00
101            300.00

我还想在包含主键的表中包含其他列字段。

2 个答案:

答案 0 :(得分:3)

只需做一个简单的连接和SUM。

SELECT
  cat_id_pk, 
  sum(cat_amount)
FROM
  t1 inner join t2
  on t1.cat_id_FK = t2.cat_id_PK
GROUP BY   
  cat_id_pk

DEMO

加入进行乘法运算。你可以看看你是否只做normal select结果

+-----------+------------+
| CAT_ID_PK | CAT_AMOUNT |
+-----------+------------+
|       100 |        500 |
|       100 |        500 |
|       101 |        100 |
|       101 |        100 |
|       101 |        100 |
+-----------+------------+

答案 1 :(得分:2)

select a.cat_id_PK,
       count(*)*(select count(*)
                 from tab_2
                 where tab_2.fk=a.cat_id_PK)
from tab1 a