我有如下两张表。
“区域”表
| AreaKey | AreaID |
|-----------------|--------------|
| <identity/int> | <varchar> |
“读数”表
| ReadingKey | AreaKey | Reading | ReadingDateTime |
|-----------------|-------------------|-------------|----------------------|
| <identity/int> |<FK:AreaKey-Areas> | <float> | <datetime> |
- Readings 表中的“AreaKey”是 Areas 表的“AreaKey”的外键。
Areas 表已经有一些行 ID 范围从 1 到 50 的数据。
我想用一些示例数据填充 Readings 表 - (“Reading”列的随机浮点值介于 1.0 和 100.0 之间,并且 ReadingDateTime 的随机日期时间值介于给定日期时间范围之间;例如当前日期时间和 3 个月前的日期时间之间) 。这些值应插入到阅读表中randomly选择区域表中已存在的区域键。
换句话说,我想将随机读数值插入到随机选择的区域,并具有随机日期时间。
谁能告诉我如何做到这一点?
假设您的 Areas 表有 50 条记录,行 id 为 1-50,我只想考虑使用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小提琴 http://sqlfiddle.com/#!3/d41d8/7855.
祝你好运。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)