分组在另一张桌子上

时间:2016-03-25 12:23:12

标签: php mysql

考虑这两个表:

# table: feeding
feeding_id          int(15)
user_id             int(15)
herd_id             int(15)
feeding_datetime    datetime
herd_num_animals    smallint(5)

# table feeding_supp
feeding_id          int(15)
supp_name           varchar(50)
supp_weight         double(8,2)
supp_dry_weight     double(5,2)
supp_price          double(9,2)

我想知道每周喂多少公斤。通过使用SUM(fs.supp_weight)并对每年/每周的结果进行分组,我得到了总重量。这很好。

但是,我希望每只动物的体重 。所以我的想法是使用SUM(fs.supp_weight) / SUM(f.herd_num_animals)。但由于分组在另一个表上,SUM(f.herd_num_animals)导致整个表的总和,而不是每年/每周。

我该如何实现?

有关信息,这是整个查询:

SELECT
    f.herd_id,
    f.herd_num_animals,
    h.herd_name,
    YEAR(f.feeding_datetime) AS year,
    WEEK(f.feeding_datetime,3) AS week,
    SUM(fs.supp_weight) / SUM( f.herd_num_animals ) AS supp_weight
FROM 
    feeding_supp fs
LEFT JOIN 
    feeding f ON f.feeding_id = fs.feeding_id
LEFT JOIN 
    herd h ON h.herd_id = f.herd_id
WHERE 
    f.herd_id=?
GROUP BY 
    WEEK(feeding_datetime,3)
ORDER BY 
    f.herd_id ASC, 
    YEAR(f.feeding_datetime) ASC, 
    WEEK(f.feeding_datetime,3) ASC

0 个答案:

没有答案