首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >属性相同的多个记录

属性相同的多个记录
EN

Stack Overflow用户
提问于 2014-07-15 15:18:21
回答 1查看 53关注 0票数 0

我正在试图总结库存零件的数量。该部件有一个原始零件号和一个备用零件号。所述备用部件号可用作原始零件号的替换。我希望能够把这个零件号和备用零件号的总数加在一起,在原来的零件号下面。

代码语言:javascript
复制
partno | qty
------------
  a1      2
  a2      3

partno | altpartno | qty
------------------------
   a1       b1        2
   a2       b2        2

结果:

代码语言:javascript
复制
partno | qty
-------------
   a1     4
   a2     5

以下是我目前的尝试:

代码语言:javascript
复制
    WITH
    on_order as (
    SELECT
    partno,Count(*) 'On Order'
    FROM amos.od_header oh join amos.od_detail od on(od.orderno_i=oh.orderno_i)
    where oh.state='O' and oh.order_type='P'
    GROUP BY partno
    ),
    on_hand as (
    SELECT p.partno 'Partno',SUM(s.qty) 'Qty On Hand'
    FROM amos.part_alternate p WITH (NOLOCK)
           left outer join amos.store s WITH (NOLOCK)  on  p.partno=s.partno or p.altpartno=s.partno
           left outer join amos.location l WITH (NOLOCK) on  s.locationno_i=l.locationno_i
           left outer join amos.location_restriction lr WITH (NOLOCK) on  lr.location_restriction=l.location_restriction
    WHERE l.location_restriction!='1' --Where Location is not restricted
    GROUP BY p.partno
    ),
alternate_on_hand AS (
SELECT p.altpartno,SUM(s.qty) 'AQty On Hand'
    FROM amos.part_alternate p WITH (NOLOCK)
           left outer join amos.store s WITH (NOLOCK)  on  p.altpartno=s.partno or p.altpartno=s.partno
           left outer join amos.location l WITH (NOLOCK) on  s.locationno_i=l.locationno_i
           left outer join amos.location_restriction lr WITH (NOLOCK) on  lr.location_restriction=l.location_restriction
    WHERE l.location_restriction!='1' --Where Location is not restricted
    GROUP BY p.altpartno)

    SELECT oh.Partno,oh.[Qty On Hand],oo.[On Order], aoh.altpartno, aoh.[AQty On Hand]
    FROM on_hand oh join on_order oo on(oo.partno=oh.Partno) join alternate_on_hand aoh on(aoh.altpartno=oh.partno)

我的问题是,我不知道如何正确地把所有的部分加起来。我的输出如下:

代码语言:javascript
复制
partno | qty | altparnto | Aqty
-------------------------------
  A1      2      B1         1
  A1      2      B2         2

当前使用。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-15 15:29:09

我认为你可以通过一个简单的查询。下面是一种使用union allgroup by的方法

代码语言:javascript
复制
select partno, sum(qty)
from ((select partno, qty
       from table1
      ) union all
      (select partno, qty
       from table2
      )
     ) t
group by partno;

您的查询引用了许多在查询中没有提到的表和列。然而,这一想法也应在那里奏效。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24761988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档