0

到着日フィールドの 1 日から 28 日後までのランダムな出発日を生成するクエリがあります。

--Query--

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

しかし、更新クエリを実行すると、ランダム化が 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

ありがとう

ウェイン

4

1 に答える 1

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) 
于 2013-02-21T10:08:23.493 に答える