我有2个数据库,即db1,db2。我需要一个查询从这些数据库(db1,db2)中获取数据,每个数据库都有2个表(优惠,发票)。
在 db1.concessions => concession 中是主键。
db1.invoicing => [优惠编号]为主键
类似地,在 db2.concessions => concession 中是主键。
db2.invoicing => [优惠编号] 是主键
在数据库1中
db1.tbl1 => Concessions 表有数据
concession
TH-123
TH-456
FP-789
NZ-609
db1.tbl2 => 进销存表有数据
[Concession Number] invoiced_on
TH-322 10.09.10
TH-900 23.10.10
FP-675 04.05.09
NZ-111 19.11.08
幸运的是,在数据库中,让步的价值是独一无二的。即优惠。[优惠] = 开具发票。[优惠编号] 不产生任何数据。
在数据库2中:
db1.tbl1 => Concessions 表有数据
concession
TH-123
FP-789
NZ-999
TH-900
db1.tbl2 => 进销存表有数据
[Concession Number] invoiced_on(dd.mm.yy)
TH-456 18.01.06
TH-777 23.10.04
FP-675 03.05.09
NZ-149 26.11.08
HEre 在 db2 concession 中是唯一的,concessions.[concession] = 开票。[concession Number] 不产生任何数据。
现在查询应该获取具有共同点的记录
db1.(优惠.优惠或发票.优惠编号) = db2(优惠.优惠或发票.优惠编号)
在示例数据中,它应返回 TH-123、FP-789、NZ-999、FP-675。
My 2nd问题是有可能将此查询扩展到多个数据库。我无法将数据库数量更改为 1,因为它们已经是fixed。请让我知道相同的最佳程序。
我尝试了类似的方法,有语法错误,
SELECT a.concession as db1_CON_NUMBER FROM db1.dbo.concessions as a UNION
SELECT b.[Concession Number] as db1_CON_NUMBER FROM db1.dbo.invoicing as b
INNER JOIN
SELECT c.concession as db2_CON_NUMBER FROM db2.dbo.concessions as c UNION
SELECT d.[Concession Number] as db2_CON_NUMBER FROM db2.dbo.invoicing as d
ON db1_CON_NUMBER = db2_CON_NUMBER
希望您能回答这两个问题。
感谢您耐心阅读这么长的邮件!