SQL查询和更新语句的更改

时间:2013-02-20 10:01:15

标签: tsql random

我的查询在到达日期字段后的1到28天内产生随机出发日期:

--Query--

SELECT ArrivalDate, DATEADD(day, 1 + RAND(checksum(NEWID()))
* LengthOfStay.LengthofStay, ArrivalDate) AS DepartureDate    
FROM Bookings, LengthOfStay

然而,当我运行Update查询时,randomisng减少到1或2天,有人可以告知为什么会这样吗?

--Update Statement--

USE Occupancy
Update B
Set DepartureDate = DATEADD(day, 1 + RAND(checksum(NEWID()))*1.5 * L.LengthofStay, B.ArrivalDate)
FROM LengthOfStay L, Bookings B

由于

韦恩

1 个答案:

答案 0 :(得分:0)

我使用了以下解决方案:

UPDATE BOOKINGS 
SET DepartureDate = 
DATEADD(day, 
CASE WHEN Rand(CHECKSUM(NEWID())) BETWEEN 0 and 0.3 THEN 2 ELSE 
CASE WHEN Rand(CHECKSUM(NEWID())) BETWEEN 0.3 and 0.5 THEN 3 ELSE 
Round(Rand(CHECKSUM(NEWID())) * 28,0) END END,ArrivalDate)