【问题标题】: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' 
    

    【讨论】:

      猜你喜欢
      • 2015-03-24
      • 2021-11-01
      • 2011-09-27
      • 1970-01-01
      • 2013-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多