2009-04-18 2 views
0

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

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; 

ответ

3

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

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