【问题标题】:Aggregate from two tables从两个表聚合
【发布时间】:2021-02-18 00:27:36
【问题描述】:

我有两张桌子

表“销售线”(SL)

    Date      "Entry No"    Item    Qty
                (PK)
    01/01/2018     1        ABC     1
    01/02/2018     2        ABC     2
    03/02/2018     3        DEF     1
    04/06/2018     4        DEF     3
    01/01/2019     5        DEF     1
    06/06/2019     6        ABC     2

表“成本明细”(CB)

    "SL Entry No"   Cost    
        (FK)    
          1         10      
          1         15      
          2          5      
          3         25      
          4         10      
          4         10      
          5          5      
          6          5      
          6         10      

预期结果:

    Item    Tot_Qty Tot_Cost    
    ABC        3     30 
    DEF        4     45

请注意,我只对 2018 年的交易感兴趣。

如何汇总 Tot_Qty 和 Tot_Cost ?谢谢

使用query suggested by @GMB,结果是:

Item    Tot_Qty Tot_Cost    
ABC        4     30 
DEF        7     45

因此,SL 中的行将与 CB 中相应的行数重复。

【问题讨论】:

    标签: sql sql-server sum inner-join sql-server-2014


    【解决方案1】:

    您可以连接两个表,按日期过滤,并按项目聚合:

    select sl.item, sum(sl.qty) tot_qty, sum(sl.qty * cb.cost) tot_cost
    from sales_line sl
    inner join cost_breakdown cb on cb.sl_entry_no = sl.entry_no
    where sl.date >= '20180101' and sl.date < '20190101'
    group by sl.item
    

    【讨论】:

    • 感谢您的回复...我已根据您建议的查询结果更新了原始帖子。
    • 很抱歉不清楚....我已经尝试过 GMB 建议的查询,但结果仍然不正确。还有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-25
    • 2018-11-03
    • 2022-01-24
    • 1970-01-01
    • 2017-08-22
    • 1970-01-01
    • 2013-10-01
    相关资源
    最近更新 更多