إضافة محتويات العمود في استعلام اتحاد SQL
سؤال
حتى الآن لدي هذا الاستعلام
SELECT
COUNT(f.code_id) as item_count,
f.code_desc
FROM
foo f
INNER JOIN foohistory fh ON f.history_id = fh.history_id
WHERE
MONTH(fh.create_dt) = 6
AND YEAR(fh.create_dr) = 2010
GROUP BY
f.code_desc
UNION ALL
SELECT
COUNT(b.code_id) as item_count,
b.code_desc
FROM
bar b
INNER JOIN barhistory bh ON b.history_id = bh.history_id
WHERE
MONTH(bh.create_dt) = 6
AND YEAR(bh.create_dr) = 2010
GROUP BY
b.code_desc
هدفي هو اتحاد هذين الاستفسارين تضيف مجموع أعمدة "item_count" foreach code_desc. هل هذا ممكن؟
المحلول
بدون مزيد من المعلومات حول الرموز ، كما لو كان من الممكن أن تكون الرموز حصرية بشكل متبادل بين الجدولين ، استخدم:
SELECT x.code_desc,
SUM(x.item_count)
FROM (SELECT f.code_desc,
COUNT(f.code_id) as item_count
FROM foo f
JOIN foohistory fh ON f.history_id = fh.history_id
WHERE MONTH(fh.create_dt) = 6
AND YEAR(fh.create_dr) = 2010
GROUP BY f.code_desc
UNION ALL
SELECT b.code_desc,
COUNT(b.code_id) as item_count
FROM bar b
JOIN barhistory bh ON b.history_id = bh.history_id
WHERE MONTH(bh.create_dt) = 6
AND YEAR(bh.create_dr) = 2010
GROUP BY b.code_desc) x
GROUP BY x.code_desc
نصائح أخرى
نعم ، فعل شيء كهذا
SELECT Sum(unionedTable.item_count)
FROM
(
//your query
) as unionedTable
لا تنتمي إلى StackOverflow