首页 文章

更新表sql基于两个标准[关闭]

提问于
浏览
0

好的,所以我看到了一些帖子,但由于某种原因,我的代码没有更新表A中的TrnID字段和表B中的LastTrnID信息,任何帮助将不胜感激 . 如果我将内部联接仅基于一个字段,则更新可以正常工作,但是我知道可以这样做,以便您在两个字段上进行内部联接,但我只能假设我没有正确执行 . 基本上,表A和表B是在查询开始时动态创建的,然后我必须将两个集合放在一个表中 . 最终表应包括人,然后每个人每天进行第一次和最后一次交易,这就是我在CrdID和LastTrnDate上进行内部联接的原因,这是该字段的日期部分 .

UPDATE
    Table_A
SET
    Table_A.TrnID = Table_B.LastTrnID       
FROM Table_A
INNER JOIN Table_B 
        ON (Table_A.CrdID = Table_B.CardholderID) 
       AND (Table_A.TrnD = Table_B.LastTrnDate)

2 回答

  • 1
    UPDATE f1
      SET f1.TrnID = f2.LastTrnID       
      FROM Table_A f1 INNER JOIN Table_B f2 
        ON (f1.CrdID = f2.CardholderID) AND (f1.TrnD = f2.LastTrnDate)
    
  • 0

    您的查询看起来没问题(除了#Table_A上的额外#)

    所以可能是数据错误 . 首先检查您的查询是否带来结果

    试试这个 SELECT ,查看你想要更新的字段和新值是否正确 .

    SELECT Table_A.TrnID, Table_B.LastTrnID       
    FROM Table_A 
    INNER JOIN Table_B 
            ON Table_A.CrdID = Table_B.CardholderID
           AND Table_A.TrnD  = Table_B.LastTrnDate
    

相关问题