【问题标题】:SQL Construction ErrorSQL 构造错误
【发布时间】:2014-03-19 05:07:42
【问题描述】:

表:项目

-------------------------------------- Item_ID 描述 -------------------------------------- 1 Vivel 缎面皂 2片 3 玛姬 4 芒果汁 -------------------------------------- 表:销售 ------------------------------------------------ Sale_ID Sale_Date Item_ID 数量 ------------------------------------------------ 1 14 年 2 月 15 日 1 2 2 14 年 2 月 16 日 1 1 3 2014 年 2 月 16 日 2 1 4 14 年 2 月 17 日 3 1 5 2014 年 2 月 18 日 1 1 6 2014 年 2 月 18 日 2 2 ------------------------------------------------

我在按照我想要的方式构建 SQL 查询时遇到了麻烦......在这里,我有两个 数据库中的表如上所示。 “ITEMS”表用于项目的描述查找 和“销售”表,用于项目的销售记录查找。现在,我的要求是,我想选择一条记录 从这两个表中生成报告(如下所示)。报告应包含 项目描述及其对应的数量总和。

报告 -------------------------------------------------- ---- Item_ID 描述 Total_Quantity -------------------------------------------------- ---- 1 Vivel 缎面皂 4 2 薄片 3 3 玛吉 1 4 芒果汁(此处应为空) -------------------------------------------------- ----

我尝试按照 SQL 查询和其他一些查询来生成报告,但出现逻辑错误.... 所以,帮助我更好地构建!

1) SELECT I.Item_ID, I.Description, Sum(S.Quantity) 从项目 I INNER JOIN SALES S ON I.Item_ID = S.Item_ID 按 I.Item_ID 订购; 2) 选择 I.Item_ID, I.Description, Sum(S.Quantity) 从项目 I,销售 S 其中 S.Item_ID IN(从 ITEMS 中选择 Item_ID) 按 I.Item_ID 排序; 3) 等等…………

【问题讨论】:

    标签: sql sql-server sql-server-2008 ms-access ms-access-2007


    【解决方案1】:

    试试这个,

              SELECT I.Description, Sum(S.Quantity)
              FROM ITEMS I 
              LEFT JOIN SALES S ON I.Item_ID = S.Item_ID
              GROUP BY I.Description
    

    【讨论】:

      【解决方案2】:

      尝试使用左连接而不是内部... 而且你需要使用 Group by Clause

        SELECT I.Item_ID, I.Description, Sum(S.Quantity)  -- It will return Null for Mango Juice 
        FROM ITEMS I 
        LEFT JOIN SALES S ON I.Item_ID = S.Item_ID
        Group By I.Item_ID, I.Description
        ORDER BY I.Item_ID;
      

      或者:

        SELECT I.Item_ID, I.Description, CASE WHEN Sum(S.Quantity) IS NULL THEN 0 ELSE Sum(S.Quantity) END Quantity  -- It will return 0 for Mango Juice 
        FROM ITEMS I 
        LEFT JOIN SALES S ON I.Item_ID = S.Item_ID
        Group By I.Item_ID, I.Description
        ORDER BY I.Item_ID;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-07-31
        • 1970-01-01
        • 2016-11-24
        • 1970-01-01
        • 2018-08-16
        • 2018-11-15
        • 2012-07-01
        • 1970-01-01
        相关资源
        最近更新 更多