2012-08-16 2 views
0

나는 현재 다음과 같은 쿼리가 :중첩 MySQL은 쿼리

select min(nw_lpdTEMP) AS Min_Lkpmp_Temp_C, 
    max(nw_lpdPH) AS Max_Lkpmp_PH, 
(select format(nw_uvttlflw,7) from tag_history 
    where from_unixtime(floor(unix_timestamp(t_stamp)/60)*60) 
    Between '2012-07-01 00:00:00' AND '2012-07-01 23:59:59' order by nw_bpdcl2 limit 1) as Min_GPM, 
    format(min(nw_bpdcl2),7) as Min_Chlorine_Residual, 
(select format(nw_uvttlflw,7) from tag_history 
    where from_unixtime(floor(unix_timestamp(t_stamp)/60)*60) 
    Between '2012-07-01 00:00:00' AND '2012-07-01 23:59:59' order by nw_bpdcl2 desc limit 1) as Max_GPM, 
    format(max(nw_bpdcl2),7) as Max_Chlorine_Residual from tag_history 
    where from_unixtime(floor(unix_timestamp(t_stamp)/60)*60) 
    Between '2012-07-01 00:00:00' AND '2012-07-01 23:59:59' 

을 나는 24 시간 사이의 분 흐름 (nw_uvttlflw) 당 갤런의 합계를 반환 다음 쿼리를 추가 할 수 있는지 찾고 있습니다. 나는 위 쿼리에 추가하려고하는 (sum 쿼리) 쿼리를 실행할 수 있으며 원하는대로 정확히 반환합니다. 내 현재 문제는 위의 쿼리를 중첩하여 원래의 더 큰 쿼리의 마지막 열로 합계 (nw_uvttlflw)를 반환하려고합니다.

내가 추가하려고 쿼리 (I이 가장 긴 쿼리 정통하지 나처럼 중첩 된 SQL 쿼리 서식 품질의 내 부족 죄송합니다) 여기에 있습니다 :

select format(sum(nw_uvttlflw),7) as Total_flow from tag_history 
where from_unixtime(floor(unix_timestamp(t_stamp)/60)*60) 
Between '2012-07-01 00:00:00' AND '2012-07-01 23:59:59'; 

귀하의 시간과 노력이다 대단히 감사합니다. 나는이 구문을 한동안 모으려고 노력해 왔는데, 구문을 올바르게 이해할 수 없다. 감사합니다

마가 복음

+0

tag_history 테이블에서 모든 것을 선택합니까? 너 왜 그 다음에 둥지를 틀고 있니? – gmaliar

+0

큰 쿼리를 보면 열에서 최소값을 얻고 다른 값에서 최대 값을 얻은 다음 Chlorine_Residual이 하루 중 최소값을 유지하는 동일한 시점에서 Min_Chlorine_Residual과 GPM을 가져 오기 때문에 중첩 된 쿼리가 필요합니다. 그것은 또한 max를 위해 이것을 수행하므로 중첩 된 질의가 필요합니다. 원래 쿼리를 참조하십시오. – Kram

답변

0

이 당신이 찾고있는 무엇인가?

select min(nw_lpdTEMP) AS Min_Lkpmp_Temp_C, 
    max(nw_lpdPH) AS Max_Lkpmp_PH, 
    (select format(nw_uvttlflw,7) from tag_history 
    where from_unixtime(floor(unix_timestamp(t_stamp)/60)*60) 
    Between '2012-07-01 00:00:00' AND '2012-07-01 23:59:59' order by nw_bpdcl2 limit 1) as Min_GPM, 
    format(min(nw_bpdcl2),7) as Min_Chlorine_Residual, 
    (select format(nw_uvttlflw,7) from tag_history 
    where from_unixtime(floor(unix_timestamp(t_stamp)/60)*60) 
    Between '2012-07-01 00:00:00' AND '2012-07-01 23:59:59' order by nw_bpdcl2 desc limit 1) as Max_GPM, 
    format(max(nw_bpdcl2),7) as Max_Chlorine_Residual, 
    (select format(sum(nw_uvttlflw),7) from tag_history 
    where from_unixtime(floor(unix_timestamp(t_stamp)/60)*60) 
    Between '2012-07-01 00:00:00' AND '2012-07-01 23:59:59') as Total_flow 
from tag_history 
where from_unixtime(floor(unix_timestamp(t_stamp)/60)*60) 
    Between '2012-07-01 00:00:00' AND '2012-07-01 23:59:59' 
+0

정확히 Tim! 언젠가 당신의 수준에 있기를 바랍니다. 나는 여전히 중첩 된 쿼리를 배우고있다. 내 실수를 찾을 수 있는지 확인하기 위해 쿼리를 조사 할 것이지만 중첩 쿼리를 함께 만드는 방법을 자세히 설명해 주시겠습니까? MySQL 설명서를 읽었으며 이해하지 못했습니다. 중첩 쿼리의 작동 방식을 분석하는 예제 템플릿을 사용 하시겠습니까? 고마워, 내가 얼마나 감사하고 있는지 모르겠다. – Kram