Q&A

  • 이런 쿼리는 어떻게...
select T2.ID , T2.reg_day
From T1, T2
where T1.r_kb = 'T'
and T1.r_no = '1221'
and T1.il_no = '1'
and T1.d_no = '11'
and T2.d_kb = '0'
and ( T1.id = T2.id or T1.id = T2.sid)

위와 같은 쿼리를 하면 아래와 같은 10건의 데이터가 나옵니다.
ID REG_DAY
----------------------------------------------------------
10A 8/27/2002 2:07:19 PM
10A 8/27/2002 6:26:11 PM
10A 8/27/2002 7:30:41 PM
10A 8/27/2002 7:44:31 PM
10A 8/28/2002 2:08:20 PM
10A 8/28/2002 7:06:22 PM
10A 8/28/2002 7:07:20 PM
10A 8/28/2002 7:27:38 PM <-----
10A 8/28/2002 7:31:27 PM
25A 8/28/2002 7:27:38 PM<------

근데 제가 뽑고 싶은건 GROUP BY해서 뽑는게 아니라
위의경우 날짜가 완전히 동일한(초까지) 두건(위의 화살표)만 뽑고 싶습니다.
근데 이 날짜 정보를 다른 곳에서 알수가 없습니다.
즉 WHERE 조건에 넣을 수가 없습니다.
(AND REG_DAY='8/28/2002 7:27:38 PM' 이렇게 할수가 없는거죠)
그리고 이것이 위처럼 두건일 수도 있고 여러건일 수도 있어요.
또 최신날짜가 아닐 수도 있구요.

그래서 쿼리 안에서 어떻게 해결해야 하는데
감이 안잡힙니다. 제가 SQL을 잘 못하거든요.
답변 주시면 감솨.....

4  COMMENTS
  • Profile
    이명호 2002.08.30 00:55
    SELECT F1,F2
    FROM TempTable
    WHERE (F1,F2) IN
         (
          SELECT F1,F2
          FROM TempTable
          GROUP BY F1,F2
          HAVING COUNT(*) > 1
        )

    중복된것을 보여주는것이 맞는지 모르겠네요..

    질문이 어려워서요 ㅠ.ㅠ

    그룹바이 한 다음 해빙으로 조건걸구 (딱 2개인것만 찾으신다면 COUNT(*) = 2)

    하시면 될것 같구요 IN으로 그 결과를 조건절에 이용하시면 안될까요

    이게 질문의 답이 되는지 모르겠네요


  • Profile
    KDDG_ZZOM 2002.08.29 23:54
    아래분이 예기하신대로 서브쿼리를 이용하시면 가능할것같고요...
    최신날짜가 아닐수도 있다는건 어떤의미인가요?
    우선 최신날짜일경우 서브쿼리문에서 max값을 얻어서 사용하시면
    되는데...
    최신날짜가 아닐수도 있다고 그래서...
    아니면 조건에 맞게 다이나믹 sql문을 만들어서 사용하시면 될것같네요...

    즐프 하세요...

  • Profile
    이희정 2002.08.29 23:13
    님니 짜신 쿼리를 서브 쿼리로 다시 함 select 하면 될 거 같은데욤..

  • Profile
    김태훈 2002.08.29 23:52
    어떤 말씀이신지 잘 모르겠습니다.^^;
    다시 서브쿼리를 한다고 해도 같은 결과가 나오는 거 아닌가요?
    제가 잘 몰라서 그러는데 자세히 설명주시면 안될까요? ^^