Групповой Союз - PullRequest
       15

Групповой Союз

0 голосов
/ 18 апреля 2009

У меня следующий запрос, который всегда дает мне две строки. Я хочу сгруппировать их в одну строку, используя tbluser.userid, можно ли сгруппировать объединение?

SELECT
SUM(tblfooditem.calories)
FROM tblfooditem
INNER JOIN tbluser ON tblfooditem.userid = tbluser.userid
WHERE tblfooditem.userid=?userid AND tblfooditem.date=?date
GROUP BY tbluser.userid
UNION
SELECT
SUM(tbladdedmealitem.calories)
FROM tbladdedmeal
INNER JOIN tbluser ON tbladdedmeal.userid = tbluser.userid
WHERE tbladdedmeal.userid=?userid AND tbladdedmeal.date=?date
GROUP BY tbluser.userid;

1 Ответ

3 голосов
/ 18 апреля 2009

Это возможно.

select sum(s) from (
SELECT
    SUM(tblfooditem.calories) S,tbl.userid
    FROM tblfooditem
    INNER JOIN tbluser ON tblfooditem.userid = tbluser.userid
    WHERE tblfooditem.userid=?userid AND tblfooditem.date=?date
    GROUP BY tbluser.userid
    UNION
    SELECT
    SUM(tbladdedmealitem.calories) S,tbl.userid
    FROM tbladdedmeal
    INNER JOIN tbluser ON tbladdedmeal.userid = tbluser.userid
    WHERE tbladdedmeal.userid=?userid AND tbladdedmeal.date=?date
    GROUP BY tbluser.userid
) Q
group by Q.userid
...