0

我有两个类似的表是这样的:

+-----+------+------+---------------------+
| ID  |  A   |   B  |      Timestamp      | 
| 308 | 1.82 | 1.38 | 2012-08-28 21:17:59 |
| 309 | 1.81 | 1.81 | 2012-08-28 21:18:25 |
| 310 | 1.38 | 1.34 | 2012-08-28 21:18:43 |
+-----+------+------+---------------------+

需要像这样创建新表:

+-----+------+------+---------------------+
| ID  |A1-A2 | B1-B2|      Timestamp      | 
| 308 |  x   |   x  | 2012-08-28 21:17:59 |
| 309 |  x   |   x  | 2012-08-28 21:18:25 |
| 310 |  x   |   x  | 2012-08-28 21:18:43 |
+-----+------+------+---------------------+

有人对此查询或 sql cmd 有任何建议吗?

编辑

对不起,我的错,我没有指定它。

我需要通过时间戳减去和同步表,ID 不是必需的或重要的。两张表每秒都填充 2 个数字(a,b),自动生成时间戳

它有什么方法可以在循环中按时计算这两张表的减法吗?输出应该是这样的,每秒计算一次,有可能吗?

+---------+--------+------+
| 时间戳 |A1-A2 | B1-B2|  
| 2012-08-28 21:17:59 | x | x |
| 2012-08-28 21:18:25 | x | x |
| 2012-08-28 21:18:43 | x | x |
+---------+--------+------+
4

2 回答 2

2

新表是使用insert into <your new table name> into后跟一个 select 语句创建的。我假设第一个表被称为t1第二个表t2

insert into new_table from
select t1.id, (t1.a - t2.a) as a1_a2, (t1.b - t2.b) as b1_b2, t1.timestamp
from t1
join t2 on (t1.id=t2.id)

列标题用作新表中的列名,但其中不能有破折号。

于 2012-08-28T19:33:32.137 回答
2

如果ID相同。您将创建新表并像这样填充它

INSERT INTO new_table
SELECT t1.id, (t1.a - t2.a), (t1.b - t2.b), t1.timestamp, ....
FROM table1 as t1 INNER JOIN table2 as t2 on t1.id = t2.id

请注意,您没有指定要对其他字段执行的操作,您现在可以随意使用这两个表中的数据。

于 2012-08-28T19:33:44.360 回答