我想根据条件更新我的表1与来自表2的某些字段值。但我无法获得正确的查询。这里的条件:更新另一个表的记录表
我有一个表1与日期字段应该从表2日期字段更新。条件是表1的id应该等于表2的id(表2具有表1的id作为FK)。另一个条件应该是表2中有一个varchar字段,它应该有特定的值,比如说“Test”。无论表2中字段的值是否为“测试”,我想在表1日期字段中更新该记录的日期。但还有一个问题。它可能会超过1次记录相同的ID表2中可以具有作为“测试”
我试图查询为:
UPDATE A
SET A.Date = Max(B.[Date])
FROM Table1 A
INNER JOIN Table2 B ON A.ID = B.FK_ID
WHERE (B.Changed LIKE 'Test')
AND A.Date IS NULL
但这不是工作作为SQL不允许Max
在没有分组的情况下更新。请帮忙。有点紧急。
看起来正确的,但为什么使用LIKE而不是equals? – 2009-12-11 08:21:37
我的第一个冲动是将它编辑为平等,但后来我认为'Test'显然是一个示例值,所以我想它可能被认为是它读取的东西,它实际上会在这个活动实现中实现,并从那里,我只是假设特德知道'LIKE'和'='之间的差异,并决定不选择,因为它是相当周边的问题=) – 2009-12-11 08:24:33
凉爽的香蕉,想要确保我hadn没有错过随机的语法变化 – 2009-12-11 18:53:11