数据库,合并在许多列中收集的数据

时间:2013-12-17 18:04:30

标签: mysql sql

我有数据显示问题(Iconics Genesis 64系统的报告工具)。 对于报告,我需要允许用户选择应该报告的设备ID的日期,日期和多选(这些是温度测量等)。

问题是,数据库收集器具有不寻常的结构,因此数据存储如下:

ID    DATE1    SAMLPLE1    DATE2    SAMPLE2    DATE3   SAMPLE3

有36个样本,直到它开始收集新行中的数据,我无权更改它。 所以基本上我需要以某种方式将所有DATE列和SAMPLE列连接在一起,以便进一步分析。

我需要的是让一行有36个DATE和SAMPLE列,36个ROWS,ID在第1列,DATE和SAMPLE在它旁边。

还没弄明白怎么做(我不太擅长数据库引擎)。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

有很多方法可以解决这个问题。首先,如果您根本无法改变数据库,您可能必须在应用程序代码(PHP或您正在使用的任何内容)中执行此操作。如果您经常需要它,我可能会建议创建一个视图:{{3 }}

在任何情况下,您都可以使用它来聚合它们:

(SELECT DATE1 as DT, SAMPLE1 as SAMPLE FROM table) UNION (SELECT DATE2 as DT, SAMPLE2 as SAMPLE from table) UNION ... UNION (SELECT DATE36 as DT, SAMPLE36 as SAMPLE)