MySQL如何从两个表“透视”行

时间:2019-11-19 03:32:00

标签: mysql select pivot-table

我正在尝试这样做:

我有Medicion桌子:

idA  measure      date       Var_idVar  idLecture
1    -74.76284851 19/11/2019    1       1
2    6.165739368  19/11/2019    2       1
3    -74.76284851 19/11/2019    1       2
4    6.165739368  19/11/2019    2       2
5    -74.76284851 20/11/2019    1       3
6    6.165739368  20/11/2019    2       3
.    .             .            .       .
.    .             .            .       .
.    .             .            .       .
108  36           21/11/2019    3       6
109  5            22/11/2019    3       6
110  4            23/11/2019    3       5
111  21           24/11/2019    3       5
112  24           25/11/2019    3       5
113  15           26/11/2019    3       6

和Var表:

idVar   nombre       unit
1       xMagna       m
2       yMagna       m
3       Temperature °C

我需要创建一个具有以下结果的视图:

Fecha       xMagna          yMagna       Lectura
19/11/2019  -74.76284851    6.165739368  1
19/11/2019  -74.76284851    6.165739368  2
20/11/2019  -74.76284851    6.165739368  4

如您所见,我需要做两个由xMagna和yMagna命名的新列,并按idLecture将其分组。在这一步中,温度对我而言不是必需的,因此我无需创建此列。

我正在尝试执行嵌套选择查询,如下所示:

CREATE
   ALGORITHM = UNDEFINED
   DEFINER = `root`@`%`
   SQL SECURITY DEFINER
VIEW `VPuntosTopo` AS
   SELECT
       `A`.`Fecha` AS `fecha`,
       (SELECT
               `innerTable`.`valor`
           FROM
               (`Medicion` `innerTable`
               JOIN `Var` `V` ON ((`V`.`idVar` = `innerTable`.`Var_idVar`)))
           WHERE
               ((`innerTable`.`Lectura` = `outerTable`.`Lectura`)
                   AND (`V`.`nombre` = 'x_magna'))) AS `xMagna`,
       (SELECT
               `innerTable`.`valor`
           FROM
               (`Medicion` `innerTable`
               JOIN `Var` `V` ON ((`V`.`idVar` = `innerTable`.`Var_idVar`)))
           WHERE
               ((`innerTable`.`Lectura` = `outerTable`.`Lectura`)
                   AND (`V`.`nombre` = 'y_magna'))) AS `yMagna`
   FROM
       (`Medicion` `outerTable`
       JOIN `Var` ON ((`outerTable`.`Var_idVar` = `Var`.`idVar`)))

但是我远远没有达到我想要的结果。

有人可以帮助我吗?

预先感谢

0 个答案:

没有答案