表格包含以下列:
Table A:
TIN,
Fee_Sched,
Effective_Date
Table B:
TIN,
Fee_Sched,
Fee_Sched_Eff
TableB.Fee_Sched& TableB.Fee_Sched_Eff目前为空白
这就是我想要做的事情:
我想比较两个TIN列,当有匹配时,我希望TableA.Fee_Sched中的相应结果在TableB.Fee_Sched中打印,TableA.Effective_Date中的结果在TableB.Fee_Sched_Eff中打印
我假设我会使用连接或联合以及可能的IF语句(如果tableA.TIN = tableB.TIN,则打印tableA.fee_sched和TableA.Effective_Date)。但是,我不确定如何指定结果应存储在哪一列或如何正确组织代码。
**Example:**
Table A
TIN Fee_Sched Effective_Date
123 ABCEDF 1/1/2011
456 ZYXABC 9/9/2009
TABLE B
TIN Fee_Sched Fee_Sched_Eff
123 blank blank
**Results:**
TABLE B
TIN Fee_Sched Fee_Sched_Eff
123 ABCEDF 1/1/2011
我试过这个:
Insert INTO dbo.TableB (Fee_Sched, Fee_Sched_Eff)
SELECT Fee_Sched, Effective_Date
FROM dbo.TableA Where dbo.TableA.TIN = dbo.TableB.TIN;
但是,我收到了这个错误:
消息4104,级别16,状态1,行3多部分标识符 " dbo.TableB.TIN"无法受约束。
答案 0 :(得分:0)
首先,首先要做的是:如果要修改表B,则需要查找UPDATE命令。另外,请注意您可以在UPDATE语句中使用SELECT,并且可以从SELECT内部引用“外部”表。这应该可以解决问题:
更新B设置B.fee_sched =(选择费用来自A,其中A.TIN = B.TIN)
最后,请记住始终发布您正在使用的RDBMS,因为您可以为每个RDBMS编写的内容可能存在差异(Microsoft SQL,Oracle,MySQL?)
答案 1 :(得分:0)
SQL中有四个基本动词/动作:
select
检索数据insert
添加数据delete
删除数据update
更改数据。 Update
是您需要使用的。使用MS SQL,您可以使用update
查询获得所需的结果:
update b
set b.Fee_Sched = a.Fee_Sched, b.Fee_Sched_Eff = Effective_Date
from TableB b
join TableA a on a.TIN = b.TIN