【问题标题】:Merge two SELECT queries and display data in one table?合并两个 SELECT 查询并在一张表中显示数据?
【发布时间】:2014-06-27 16:44:29
【问题描述】:
以下查询显示来自两个表的数据,它工作正常,但我想合并结果并在单个表中显示输出:
SELECT
ITEM_MODEL, QUANTITY
FROM
ITEMS_MASTER
WHERE
ITEM_MODEL = 'keyboard'
SELECT
AVG(RATE) AS Avg_Rate,
SUM(AMOUNT) AS TOTAL_AMOUNT
FROM
ITEM_DETAILS
WHERE
ITEM_MODEL = 'keyboard'
GROUP BY
ITEM_MODEL
可能的方法是什么我对 SQL 很陌生,所以请指导我如何做到这一点。提前致谢。我正在使用 SQL Server 2012。
【问题讨论】:
标签:
sql
merge
sql-server-2012
【解决方案1】:
我刚刚接受了您的两个查询并编译为一个。这只是其中一种方法
select
m.ITEM_MODEL,
m.QUANTITY,
d.Avg_Rate,
d.TOTAL_AMOUNT
from
(Select ITEM_MODEL, AVG(RATE) as Avg_Rate,SUM(AMOUNT) as TOTAL_AMOUNT
from ITEM_DETAILS
where ITEM_MODEL= 'keyboard' Group by ITEM_MODEL) D
inner join
ITEMS_MASTER m on m.ITEM_MODEL = d.ITEM_MODEL
它将仅显示“键盘”,因为您的聚合内联查询已经排除了所有其他查询。我也将Item_master 移到第二位以获得更好的性能
【解决方案2】:
试试这个
Select ITEM_MODEL,QUANTITY
from ITEMS_MASTER t join(
Select ITEM_MODEL,AVG(RATE) as Avg_Rate,SUM(AMOUNT) as TOTAL_AMOUNT from ITEM_DETAILS
where ITEM_MODEL= 'keyboard' Group by ITEM_MODEL
) s
on s.item_model = t.item_model
where ITEM_MODEL='keyboard'