我在数据库1SQL Server的最大值检索
create table database1..Table1 (id int ,datestamp datetime)
create table database1..Table2 (id int ,datestamp datetime)
create table database1..Table3(id int ,datestamp datetime)
以下3个表,该表中DATABASE2
create table database2..Table1 (id int ,datestamp datetime)
我想的更大的值更新DATABASE2的表1 .datestamp datestamp(在数据库1的3个表之间)
是否有比此查询更好的方法(不使用大小写):
update db2t1
set datestamp=
case when db1t1.datestamp > db1t2.datestamp and db1t1.datestamp > db1t3.datestamp then db1t1.datestamp
when db1t2.datestamp > db1t1.datestamp and db1t2.datestamp > db1t3.datestamp then db1t2.datestamp
else db1t3.datestamp
end
from database2..Table1 db2t1 inner join database1..Table1 db1t1 on db2t1.id=db1t1.id
inner join database1..Table2 db1t2 on db1t1.id=db1t2.id
inner join database1..Table3 db1t3 on db1t1.id=db1t2.id
这个查询将在一个巨大的表
在'db1t1.datestamp'和'db1t2.datestamp'相等的情况下,即使它低于另外两个,也会将该值设置为db1t3.datestamp。 – TZHX 2015-02-05 13:18:55
这几乎是你如何做到这一点(铭记TZHX的说法,并且如果你为自己设定价值,你可能会省下一点努力)。如果这些表格在id上键入,你会很难按照数据的大小做出很大的改变。 – Xedni 2015-02-05 13:21:55