2011-09-21 4 views
0

날짜 범위에 대해 2300에서 예약 된 모든 meds를 가져 오는 select 쿼리를 실행하려고합니다. 예정된 날짜/시간을 단 한 시간으로 변환 할 수있는 방법이 있습니까?특정 시간에만 발생한 쿼리 트랜잭션

SELECT DISTINCT USERCODE, 
      TRANSACTIONID, 
      ACTION, 
      TRANSACTIONHOUR, 
      SOURCE, 
      RXNUMBER, 
      DESCRIPTION, 
      MASTERPATIENTID, 
      FACILITYCODE, 
      ADMINISTRATIONTIME 
FROM ( ABC.TL TL 
     INNER JOIN 
      ABC.S_VIEW S_VIEW 
     ON (TL.RXNUMBER = S_VIEW.RXNUMBER)) 
    INNER JOIN 
     ABC.PV PATIENTVISIT 
    ON (TL.MASTERPATIENTID = PV.MASTERPATIENTID) 
WHERE (TL.USERCODE NOT IN ('ABC')) 
    AND (TL.ACTION IN ('A', 'DC')) 
    AND (TL.TRANSACTIONHOUR BETWEEN to_date('2011-07-01 00:00:00', 'yyyy/mm/dd hh24:mi:ss') AND to_date('2011-09-30 23:59:59', 'yyyy/mm/dd hh24:mi:ss') 

내가 모든 지정된 기간 동안 만 2300 시간에 분배 포함하는 쿼리를 싶습니다 : 이것은 내가 지금까지있는 것입니다. 데이터베이스는 Oracle 10g입니다.

답변

1

먼저 날짜 문자열을 다른 형식으로, 형식을 다른 형식으로 지정했습니다. 일관성있게 만드십시오.

이 시도 :

SELECT DISTINCT USERCODE, 
      TRANSACTIONID, 
      ACTION, 
      TRANSACTIONHOUR, 
      SOURCE, 
      RXNUMBER, 
      DESCRIPTION, 
      MASTERPATIENTID, 
      FACILITYCODE, 
      ADMINISTRATIONTIME 
FROM ( ABC.TL TL 
     INNER JOIN 
      ABC.S_VIEW S_VIEW 
     ON (TL.RXNUMBER = S_VIEW.RXNUMBER)) 
    INNER JOIN 
     ABC.PV PATIENTVISIT 
    ON (TL.MASTERPATIENTID = PV.MASTERPATIENTID) 
WHERE (TL.USERCODE NOT IN ('ABC')) 
    AND (TL.ACTION IN ('A', 'DC')) 
    AND (TL.TRANSACTIONHOUR BETWEEN to_date('2011/07/01 00:00:00', 'yyyy/mm/dd hh24:mi:ss') AND to_date('2011/09/30 23:59:59', 'yyyy/mm/dd hh24:mi:ss') 
    AND TO_CHAR(TL.TRANSACTIONHOUR, 'HH24MI') = '2300' --THIS IS THE NEW CONDITION 
+0

이 일을 그! 고맙습니다! – Shaji

관련 문제