2012-12-29 2 views
0

에서 rundate 근처 가장 최근의 데이터 나 SQL 쿼리를 통해 액세스 DB에서 레코드를 검색하는 작업입니다. origina 쿼리는 최신 날짜 데이터를 검색합니다. 하지만 2012 년 3 월 3 일 예를 들어 도구를 실행하려면 최신 데이터를 계속 가져오고 싶습니다. 하지만 날짜가 3/3/2012 또는 2012 년 3 월 3 일에 가까운 날짜이지만 날짜를 초과하지 않는 데이터가 필요합니다. 예를 들어 2012 년 3 월 3 일을 사용할 수없고 2012 년 3 월 2 일을 db로 사용할 수있는 경우 해당 날짜를 선택해야합니다. 수정 된 쿼리는 아래와 같습니다. 그것은 예약어 맞춤법 오류나 문법 오류 등을 제외하고 제공합니다. 쿼리를 도와 주시겠습니까? 쿼리에서 trundate는 내 프로그램에서 입력됩니다. 내 질문은 지금 :액세스 액세스

에 CString SEL은 = "나는 (ProductType, MAX DateUpdated1 AS (DateUpdated)를 선택 MortgageRateSpreads로부터 I.DateUpdated I.ProductType, I.Spread을 선택"; SEL을 + = "여기서 DateUpdated < = ";
SEL + = tRunDate.Format ("{TS '% Y- % M- % D'} ');

의 CRecordset 세트 (& pdatabase)

try 
    { 

     double val; 
     CDBVariant var; 

     if (set.Open(CRecordset::forwardOnly, sel/*, CRecordset::readOnly*/)) 
     { 
      m_Log->Log("recordset is open"); 
      while (!set.IsEOF()) 

MY Sel을은 :

당신은

  {    
+0

는 당신이 우리를 보여줄 수 무엇인가해야한다고 생각 쿼리가 실행되기 바로 전에 포함 된 셀. 최종 SQL 문을 볼 때 피드백을 제공하는 것이 더 쉽습니다. TOP 다음의 값이 msaccess SQL의 괄호 안에 들어 있다고 생각하지 않습니다. 내가 믿어야하는 TOP 1이어야합니다. –

답변

0

내가 MS 액세스 날짜 주위에 # 기호를 좋아하는 생각 감사드립니다. DateUpdated < = # 3-3-2012 # the sel + = "where ..."sel + = "where ..."와 같은 공백이 필요합니다. 또한 SQL 문의 날짜 문자열은 과 같아야합니다 # 3/3/2012 년

은 또한 당신의 중첩 된 선택 문이 갖고있는 것 같아요 # = < DateUpdated 절에서 WHERE 절을 다음과 같습니다. 나는

이 (ProductType, MAX (DateUpdated) MRSpds FROM DateUpdated1 AS DateUpdated < ProductType BY = # 2012-02-08 # 그룹을 선택 경우) T

+0

아니요, 작동하지 않습니다. 시도했습니다. 시간 형식이 다른 프로그램에서 작동합니다. 나는 당신이 준 포맷을 다시 코딩하려고 시도 할 것이다. 액세스에서 그런데 날짜 fromat은 다음과 같이 : 3/3/2012Thank 당신 – user1783998

+0

이 오류는 단어를 예약했다 또는 인수의 철자가 잘못 또는 문장 부호가 – user1783998

+0

(1) SQL 문에서 TOP으로 발생하는 오류 되었습니까 잘못이다. 이 경우, 괄호없이 TOP 1을 시도 –