데이터베이스 개발자 질문과 답변 게시판

데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.

쿼리좀 풀어 주세요

메아리 2016.11.18 17:30 Views : 2744

안녕 하세요 메아리 입니다.


select 두개 문을 하나로 합쳐서 출력 할려고 합니다.


SELECT CONVERT(VARCHAR, timestamp, 23) , sensor_id 

FROM surveydb.dbo.survey_body s  

WHERE site_code = '001007003001'  

AND CONVERT(VARCHAR, timestamp, 23) between '2015-08-29' AND '2015-08-29'             

AND sensor_id IN ('255')    


위 구문은 잘 됩니다.



SELECT CONVERT(NVARCHAR, timestamp, 120) as date_time

FROM surveydb.dbo.survey_body

WHERE site_code = '001007003001'  

AND sensor_id = '255' 

AND CONVERT(VARCHAR, timestamp, 23) between '2015-08-29' AND '2015-08-29'


위 구문도 잘 됩니다.


그런데 두개를 합치기 하면


아래처럼




select *

FROM

(

SELECT CONVERT(VARCHAR, timestamp, 23) , sensor_id 

FROM surveydb.dbo.survey_body s  

WHERE site_code = '001007003001'  

AND CONVERT(VARCHAR, timestamp, 23) between '2015-08-29' AND '2015-08-29'             

AND sensor_id IN ('255')      

  ) union all


select * 

FROM

(

SELECT CONVERT(NVARCHAR, timestamp, 120) sensor_id

FROM surveydb.dbo.survey_body

WHERE site_code = '001007003001'  

AND sensor_id = '255' 

AND CONVERT(VARCHAR, timestamp, 23) between '2015-08-29' AND '2015-08-29'

)


하면 동작이 안됩니다.


합치는 조건은 상관없습니다. 


그러니까 윗쪽 테이블 칼럼이나, 아랫쪽 테이블 칼럼이 동일합니다.


그냥 모두 표시 되게끔 합치면 되는 겁니다.


한수 부탁 드립니다.


이상입니다.


감사 합니다.








XE Login