开发者

Query transactions that occured only at a certain time

I am trying to run a select query that will pull all meds scheduled at 2300 for a date range. Is there a way I can convert the scheduled date/time to just hour? This is what I have so far:

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')

I would like the query to include all dispense during the specified dates but only at 2300 time. Database is 开发者_StackOverflow社区oracle 10g.


First, you have given the date string in a different format and the format in different format. Make it consistent.

Try this:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜