0
我有3个数据库,我需要提取数据(我们称之为DB1,DB2和DB3)。 从DB1我选择返回像这样的查询:“有条件”加入到不同的表
ORDER DESC TOTAL ORGANIZATION
=============================================
262 Order1 5129 116
629 Order2 123 138
915 Order3 95 138
159 Order4 1932 116
,然后从DB2和DB3我选择该信息(包括表是相同的,但与diferent组织diferente数据)
DB2 (ORG 116):
ORDER TYPE
==================
262 2
159 5
856 3
629 2
DB3(ORG 138):
ORDER TYPE
==================
629 1
915 4
012 1
262 5
正如你所看到的,两个组织都可以让它们具有相同的订单号,但是不同类型。
如何将DB1与DB2和/或DB3一起提取TYPE列,但是根据DB1组织列查找不同的DB?
结果会是这样:
ORDER DESC TOTAL ORGANIZATION TYPE
===========================================================
262 Order1 5129 116 2
629 Order2 123 138 1
915 Order3 95 138 4
159 Order4 1932 116 5
正如你所看到的,对于订单262我得到了2型从DB2(而不是从DB3因为ORG是116)和ORDER 629我从拿到1型DB3(不是来自DB2,因为ORG是138)
我的简单查询会是这样的(我使用WITH ... AS,因为querys非常长,每个来自不同的服务器,所以这样一切似乎更多有组织):
With EAM as (
Select Order, Desc, Total, Organization
from Table1
),
AP116 as (
select order, type
from table2
),
AP138 as (
select order, type
from table3
)
select *
from EAM inner join AP116 on EAM.order = AP116.order
此查询正常工作,但将所有订单链接到AP116。我需要使用一个CASE或其他东西来让我选择AP116或AP138,这取决于最后一行的ORG。
'LEFT JOIN'的所有表,只是选择你需要用'CASE'语句中的值? – DavidG