我在SQL Server中有一個表,其中每個唯一的location_id都有一個唯一的SiteNumber。我想要做的是,如果location_id不同,請將每個sitenumber加1。根據其唯一ID更新號碼
例如:
SITENUM LOCATION_ID
1234 8801
4567 8802
8910 8803
...等等
可以說,我現在已經爲LOCATION_ID插入新的價值,但我仍然SITENUM NULL
NULL 7000
NULL 7001
NULL 7002
1234 8801
4567 8802
等。
我的邏輯表明7000的sitenum應該是MAX(select * sitenum from table)
但7001下一個sitenum應該Max(select * sitenum from table)+1
眼下,下面的代碼更新所有sitenums一次完全相同的值
UPDATE dbo.[Monthly Hierarchy Table]
SET SITENUM = MAX(SELECT SITENUM FROM [Monthly Hierarchy Table])+1
WHERE SITENUM IS NULL and location_id is not null
但我真的希望它做的是走行線,查看max(sitenum)
並根據非重複的location_id來增加它。必須有某種方式,我可以將每個location_id與自身進行比較,然後將sitenumber增加到無論其爲null還是location_id不同的地方
我該如何去做這件事?也許我理解它的方式不對,但它是一個非常簡單的問題。
我loc.id的都是獨一無二的,這種解決方案實際上是一個相當位更好的正弦e我可以引用我的loc.id並根據相同的值對它們進行分組。實際上這對我的問題非常有效;) – Sonal 2009-10-01 13:48:23