동적 날짜 범위를 사용하여 Excel 2007에서 SQL 쿼리를 어떻게 생성합니까?

동적 날짜 범위를 사용하여 Excel 2007에서 SQL 쿼리를 어떻게 생성합니까?

특정 기간에 대한 보고서를 인쇄할 수 있는 보고 스프레드시트를 만들려고 합니다. 아래 쿼리는 작동하지만 ?날짜 대신 매개변수를 사용하려고 하면 날짜가 포함된 셀을 선택한 후 오류가 발생합니다. 작은따옴표를 사용하면 ('?')문자열에서 날짜/시간 오류로 변환되고, 그렇지 않으면 (?)근처에서 구문 오류가 발생합니다 @p1.

결국에는 시작 날짜와 종료 날짜 또는 데이터를 중요한 정보로 필터링하기 위해 시작 날짜/시간에 월 또는 이동을 추가하는 수식이 필요합니다. 쿼리는 Microsoft Query에서 작성되었습니다.

SELECT FloatTable.DateAndTime,
       TagTable.TagName
FROM   master.dbo.FloatTable FloatTable,
       master.dbo.TagTable TagTable
WHERE  FloatTable.TagIndex = TagTable.TagIndex
       AND (( FloatTable.DateAndTime >= {ts '2012-06-01 00:00:00'} )) 

어떤 도움이라도 주시면 감사하겠습니다.

답변1

쿼리를 텍스트 대신 수식으로 입력하고, 유효한 SQL 문이 생성되도록 선택한 셀에서 날짜를 작성해야 합니다.

A1 셀에 날짜가 있다고 가정하고 B1 셀에 다음 수식을 입력합니다.

="SELECT FloatTable.DateAndTime, TagTable.TagName FROM master.dbo.FloatTable _ 
FloatTable, master.dbo.TagTable TagTable WHERE FloatTable.TagIndex = _
TagTable.TagIndex AND ((FloatTable.DateAndTime>={ts '" & YEAR(A1) & "-" _
& MONTH(A1) & "-" & DAY(A1) & " 00:00:00'}))"

각 줄 끝에 있는 밑줄은 계속됨을 나타냅니다. 수식이 작동하려면 해당 항목과 캐리지 리턴을 삭제해야 합니다. 전체 수식은 아래의 단일 행에 설정됩니다. (이 사이트에서는 읽기 어렵지만 Excel에서는 좋아합니다!)

="SELECT FloatTable.DateAndTime, TagTable.TagName FROM master.dbo.FloatTable FloatTable, master.dbo.TagTable TagTable WHERE FloatTable.TagIndex = TagTable.TagIndex AND ((FloatTable.DateAndTime>={ts '" & YEAR(A1) & "-" & MONTH(A1) & "-" & DAY(A1) & " 00:00:00'}))"

관련 정보