我有两个表如下。
“面积”表
| AreaKey | AreaID | |-----------------|--------------| | <identity/int> | <varchar> |
“读数”表
| ReadingKey | AreaKey | Reading | ReadingDateTime | |-----------------|-------------------|-------------|----------------------| | <identity/int> |<FK:AreaKey-Areas> | <float> | <datetime> |
Areas表已经有一些数据,行ID的范围是1到50。
我想用一些示例数据填充Readings表-(“ Reading”列的随机浮点值介于1.0和100.0之间,以及给定DateTime范围之间ReadingDateTime的随机datetime值;例如,当前日期时间与3个月前的日期时间之间) 。通过 随机 选择Areas表中已经存在的AreaKeys,可以将这些值插入到Reading表中。
换句话说,我想将随机读数值插入具有随机日期时间的随机选择区域。
谁能给我一个有关如何执行此操作的线索?
假设您的Areas表有50条记录,行ID为1-50,我将研究使用该RAND函数。
RAND
像这样的事情似乎起作用:
SELECT ROUND(((50 - 1 -1) * RAND() + 1), 0) as AreakKey, ROUND(((100 - 1 -1) * RAND() + 1), 1) as Reading, DATEADD(mm,-3,GETDATE()) + ( ABS( CAST( CAST( NewID() AS BINARY(8) ) AS INT ) ) % CAST( (GETDATE() - DATEADD(mm,-3,GETDATE())) AS INT ) ) as ReadingDateTime
这是一些SQL Fiddle。
祝你好运。