2011-12-02 71 views
0

我有這個挑戰。我想在計算列中實現一個公式。目前我的公式是:((((([sponsorID]+' ')+substring(CONVERT([varchar],datepart(year,[DateCreated]),(0)),(3),(4)))+'-')+'0')+CONVERT([varchar],[ID],(0)))計算列公式以及它如何基於條件工作

其中:sponsorID,DateCreated,ID是我的表PatientInfo中的列。

的公式推產品是什麼PVT 11 10567

我的ID列自動遞增

現在總沒有我的表中的記錄叫PatientInfo越來越500,000樣本。我給出的公式是[贊助商年 - 4位]。它不能超過4位!

我該如何實現這個公式,以便在一年結束並在新的一年重新開始時,id停止。即病人文件夾號可以是PVT 10 0128 .......和PVT 11 0128.這是因爲在一年內,新病人的總數不會超過4位數。除了現有的患者。

請幫助。我希望我已經提供了我的挑戰的清晰畫面。如果有更好的方法來實現這一點,請協助。

等待您的回覆。

+0

爲什麼這麼多括號? –

+0

@Ocaso Protal:它們是由SQL Server添加的 – gbn

+0

@gbn D'Oh你說得對。 –

回答

0

它會使用ID的最後4位數嗎?對於表達的ID部分,你可以使用:

RIGHT('000' + CONVERT(varchar,[ID]),4)

當然,如果你曾經在某一年插入超過9999行,你可以得到重複。

+0

這回答我的問題。非常感謝。 – Rahmat

+0

沒問題。很久以前,我忘記了它! – GilM