我正在尝试从基于MySQL的数据库的表中检索多个参数的数据。
我想检查日期的计数,如果计数等于24,我需要找到多个参数的最大值和最小值并检索数据。我使用了下面显示的查询,但它给出了语法错误。
"SET @cnt=(select count(DATE) from DATA where ID=1111 and DATA_DATE>='2016-01-24 00:00:00' and DATA_DATE<'2016-01-25 00:00:00') \
IF (@cnt=24) then \
select MIN(parameter1),max(parameter2) from STATION_DATA where STATION_ID=6216 and DATA_DATE>='2016-01-24 00:00:00' and DATA_DATE<'2016-01-25 00:00:00' \
END IF
但它给出了语法错误。 我是MySQL的初学者,任何帮助都将受到高度赞赏。
提前致谢。
答案 0 :(得分:0)
以下应该可以正常工作,只需在where子句中使用变量@cnt
,而不是使用存储程序的IF语句。
SET @cnt=(select count(DATE) from DATA where ID=1111 and DATA_DATE>='2016-01-24 00:00:00' and DATA_DATE<'2016-01-25 00:00:00');
select MIN(parameter1),max(parameter2) from STATION_DATA where @cnt=24 and STATION_ID=6216 and DATA_DATE>='2016-01-24 00:00:00' and DATA_DATE<'2016-01-25 00:00:00';
答案 1 :(得分:0)
IF语句在查询中有所不同。请使用以下查询:
SET @cnt=(SELECT COUNT(DATE) FROM DATA WHERE ID = 1111
AND DATA_DATE >= '2016-01-24 00:00:00'
AND DATA_DATE < '2016-01-25 00:00:00');
SELECT IF(@cnt = 24, MIN(parameter1), '') AS parameter1,
IF(@cnt = 24, MAX(parameter2), '') AS parameter2
FROM STATION_DATA WHERE STATION_ID = 6216
AND DATA_DATE >= '2016-01-24 00:00:00'
AND DATA_DATE < '2016-01-25 00:00:00';