将来自不同表的2个sql组合成一个查询

时间:2016-09-21 10:21:08

标签: sql

我有例如第一个查询:(ararnr =文章编号)

Select ararnr,ararir,aoarom from ar left join ao ON AR.ARARNR=AO.AOARNR WHERE AR.ARARKD=1389

第二个查询使用第一个查询中第一列的结果在另一个表中搜索<​​/ p>

Select votgan, sum(ststan) as totalStock from vo INNER JOIN st  on vo.voarnr=st.starnr where voarnr = ararnr

我怎么能把两者结合起来?

请注意:并非所有第一个查询中的文章编号都会在第二个查询中找到,但我在结果中需要它们。

在结果中我需要两个查询中的列。

修改

例如:

第一个查询返回文章编号和描述:

+---------+--------------+
|  ararnr |    aoarom    |
+---------+--------------+
| a123456 | description1 |
| b123456 | description2 |
| 0123456 | description3 |
+---------+--------------+

第二个查询返回这些文章的总库存:

+---------+--------------+
|  ararnr |  totalstock  |
+---------+--------------+
| a123456 |      12      |
| b123456 |              |
| 0123456 |       6      |
+---------+--------------+

注意第二个不返回值,因为此表中不存在articlenumber。

在我的结果中,我想获得带有相应描述和库存的文章编号。

+---------+--------------+-----------+---------+
|  ararnr |    aoarom    | totalStock| vovoan  |
+---------+--------------+-----------+---------+
| a123456 | description1 |     12    |   2     |
| b123456 | description2 |           |   1     |
| 0123456 | description3 |      6    |         |
+---------+--------------+-----------+---------+

我在 db2

上使用sql

第二次编辑

第一个查询将从表 ar 中选择一些商品编号(ararnr),并在另一个表 ao 中找到相应的描述(aoarom)。

第二个查询从第一个查询中找到的文章编号的两个差异表 vo st 中查找股票(vovoan和sum ststan)。

结果应该具有相应描述的商品编号以及来自vo和st

的相应库存

4 个答案:

答案 0 :(得分:1)

我无法完全理解你的要求,但另一个加入可能会对你有所帮助。

示例:

SELECT ar.ararnr, ar.ararir, ar.ararom, vo.votgan, SUM(vo.ststan) as totalStock
FROM ar LEFT JOIN ao ON [id=id] LEFT JOIN vo ON [id=id]

因为我不知道你的桌子结构是什么,或者你真正要求的是什么,这是我能给你的最好的回应。

这也可能是您正在寻找的: Combining 2 SQL queries and getting result set in one

答案 1 :(得分:0)

如果要发布表结构和所需结果,你会得到更完整的答案,但是......

您可以将第一个查询用作第二个查询的结果集,然后加入该查询。类似的东西:

Select 
  votgan, 
  sum(ststan) as totalStock 
from vo 
inner join (Select 
              ararnr,
              ararir,
              ararom 
            from ar 
            left join ao .....) z on vo.voarnr = z.ararnr

编辑:

Select 
  votgan, 
  sum(ststan) as totalStock,
  z.ararnr,
  z.aoarom
from vo 
inner join (Select 
              ararnr,
              ararir,
              ararom 
            from ar 
            left join ao .....) z on vo.voarnr = z.ararnr

答案 2 :(得分:0)

您可以使用此查询。

SELECT ar.ararnr, ar.ararir, ar.ararom, vo.votgan, SUM(vo.ststan) as totalStock 
FROM ar 
LEFT JOIN ao ON ao.ararnr = ar.ararnr 
LEFT JOIN vo ON vo.voarnr = ao.ararnr

答案 3 :(得分:0)

如果您使用SQL Server作为数据库,则可以在F9 (the sheet name): 'Data BBG'! F10 (column letter): I F12 (starting row): 1298 F11 (ending row): 1223 E4 (threshold number): 25

的帮助下完成此操作
OUTER APPLY