SQL 在多字段主键连接中连接字段信息
SQL concatenate field info in multifield primary key join
我有两个总帐数据库,我想在一个多字段主键上连接在一起。
A.FiscalYear + A.Period + A.AcntNo = B.FiscalYear + B.Period + B.AcntNo
我的问题是,在 Table A
中,FiscalYear
是 4 位数的年份,而在 Table B
中是 2 位数的年份。我无法直接修改数据。
我有什么选择可以将 2 位数年份转换为 4 位数年份以便我可以将表格连接在一起?
如果您可以放弃前 2 位数字,那么您可以使用 SUBSTRING
功能
SUBSTRING(A.FiscalYear,2,2) + A.Period + A.AcntNo = B.FiscalYear + B.Period + B.AcntNo
你会想做类似的事情
select
*
from
ledger_a a
inner join ledger_b b on
b.FiscalYear = a.FiscalYear and
b.Period = 2000 + a.Period and
b.AcntNo = a.AcntNo
这可以根据您的需要进行更改。请注意,在连接子句中修改某些内容时,我不会使用精简索引。
我有两个总帐数据库,我想在一个多字段主键上连接在一起。
A.FiscalYear + A.Period + A.AcntNo = B.FiscalYear + B.Period + B.AcntNo
我的问题是,在 Table A
中,FiscalYear
是 4 位数的年份,而在 Table B
中是 2 位数的年份。我无法直接修改数据。
我有什么选择可以将 2 位数年份转换为 4 位数年份以便我可以将表格连接在一起?
如果您可以放弃前 2 位数字,那么您可以使用 SUBSTRING
功能
SUBSTRING(A.FiscalYear,2,2) + A.Period + A.AcntNo = B.FiscalYear + B.Period + B.AcntNo
你会想做类似的事情
select
*
from
ledger_a a
inner join ledger_b b on
b.FiscalYear = a.FiscalYear and
b.Period = 2000 + a.Period and
b.AcntNo = a.AcntNo
这可以根据您的需要进行更改。请注意,在连接子句中修改某些内容时,我不会使用精简索引。