SQl查询显示相反的值

时间:2014-04-02 08:01:24

标签: mysql sql phpmyadmin

处理sql查询以显示T_Temperatur和T_Badende_per_Time以及值。我的SQL查询将逗号的逗号更改为逗号,这不是问题。问题是我的sql查询选择了obpositite标题的值,如下所示:

SQL:

SELECT routines.date, routines.time, 
SUM( IF( measurements.title =  'T_Temperatur', CAST( REPLACE( routines.value,  ',',  '.' ) AS DECIMAL( 18, 2 ) ), 0 ) ) AS T_Temperatur, 

SUM( IF( measurements.title =  'T_Badende_per_Time', CAST( REPLACE( routines.value,  ',',  '.' ) AS DECIMAL( 18, 2 ) ), 0 ) ) AS Badende,

SUM( IF( measurements.title =  'T_Luft_temperatur', CAST( REPLACE( routines.value,  ',',  '.' ) AS DECIMAL( 18, 2 ) ), 0 ) ) AS Luft_Temp

FROM routines
INNER JOIN measure_routine ON routines.id = measure_routine.routine_id
INNER JOIN measurements ON measure_routine.measure_id = measurements.id
GROUP BY routines.date, routines.time
ORDER BY routines.date, routines.time;  

enter image description here

我的数据库是用

构建的

例程:

enter image description here

measure_routine:

enter image description here

测量

enter image description here

1 个答案:

答案 0 :(得分:3)

交换IF()函数中的参数,如果条件为真,则返回0

如果(表达式1,表达式2,表达式3)

如果expr1为TRUE(expr1<> 0且expr1<> NULL),则IF()返回expr2;否则它返回expr3。

SELECT routines.date, routines.time, 
   SUM(IF(measurements.title='T_Temperatur', CAST(REPLACE(routines.value,',','.' ) AS DECIMAL(18,2)), 0)) AS T_Temperatur, 
   SUM(IF(measurements.title='T_Badende_per_Time', CAST(REPLACE(routines.value,',','.') AS DECIMAL(18,2)), 0)) AS Badende
FROM routines
INNER JOIN measure_routine ON routines.id = measure_routine.routine_id
INNER JOIN measurements ON measure_routine.measure_id = measurements.id
order by routines.date, routines.time