2013-08-28 2 views
1

전에 어제 일에 대한 데이터를 가져 오기 :SQL 내가이 쿼리를 실행하고

select member, customerinfo.customerid -- ...other irrelevant columns... 
from customerinfo, addressinfo 
    where customerinfo.customerid = addressinfo.customerid 
    and MEMBER = (Date(GetDate()-1)) 
    and addressinfo.addresstype = 's' 

나는 그것을 분명 회원 = 어제 경우에 저에게 데이터를주고있다. 회원은 지난 이일 (어제 전날) = 경우

내 질문은, 어떻게 나에게 데이터를 제공하는 쿼리를 구성 할입니까?

+1

경고! 이전 스타일의 JOIN이 감지되었습니다. INNER JOIN 구문을 사용하십시오. –

+0

'MEMBER'가 datetime 열이라는 것이 얼마나 직관적입니까? 또한이 쿼리가 당신에게 어떤 것을 제공합니까? 나는'메시지 195, 수준 15, 상태 10 수, 라인 (16)/'DATE'를 인식 할 수없는 내장 함수 name.' –

+1

그리고 마지막으로 : 항상 낭비하지 않도록 당신이 사용하고있는 RDBMS 것과 태그를하시기 바랍니다 사람들의 시간. 'sql'은 너무 일반적인 태그입니다 - 20 개 이상의 다른 방언으로 SQL을 작성합니다. –

답변

6
MEMBER BETWEEN (GETDATE() -2) AND (GETDATE() -1) 

당신도 시도 할 수 있습니다 :

MEMBER BETWEEN DATEADD(day, -2, GETDATE()) AND DATEADD(day, -1, GETDATE()) 
+1

이 작동 듯 : BETWEEN 회원 (날짜 (에 GetDate() - 2)) 및 (날짜 (에 GetDate() - 1)) SQL 서버의 – JeffreyLazo

+1

어떤 버전이() 여기서 'DATE를 사용하는 모든 당신이 사람들을의'내장입니다 기능이 있습니까? 나는 너무 혼란 스럽다. –

+0

@AaronBertrand, 처음에는 질문에 SQL SERVER 태그가 지정되지 않았습니다. 그것은 나중에 EDIT 후에 추가되었는데, 나는 그것이 정확하다고 생각하지 않습니다. – Habib

1
는 귀하의 조회를 변경

: SQL 서버에서

SELECT member, customerinfo.customerid, ContactName, Address1, 
Address2, City, State, ZIP, Country from customerinfo, addressinfo 
WHERE customerinfo.customerid = addressinfo.customerid 
and MEMBER >= (Date(GetDate()-2)) AND MEMBER <= (Date(GetDate()-1)) 
and addressinfo.addresstype = 's'