Subject | Re: Firebird SQL question |
---|---|
Author | legacydrum |
Post date | 2007-03-07T15:07:39Z |
Set,
Thanks for your reply. That seems to work for the one table.
Hoever, after looking at it further that is the detail table and not
the master. I need to add the SQL code you mentioned below to the
following view. Do you have any ideas on how to do this?
CREATE VIEW SECONDAPPARATUSARRIVAL(
ID,
FDID,
LOCATION_ID,
INCIDENTNO,
INCIDENTTYPE,
EXPOSURE,
INSERVICEDATE,
ENROUTEDATE,
CLEARDATE,
APPARATUSID,
ARRIVALDATE,
DIFFHRS,
DIFFMIN)
AS
SELECT
H.ID,
H.FDID,
H.LOCATION_ID,
H.INCIDENTNO,
H.INCIDENTTYPE,
H.EXPOSURE,
T.INSERVICEDATE,
T.ENROUTEDATE,
T.CLEARDATE,
T.APPARATUSID,
T.ARRIVALDATE,
CAST(24*(T.ARRIVALDATE-T.ENROUTEDATE) AS INTEGER),
CAST((((T.ARRIVALDATE-T.ENROUTEDATE)*24)-CAST((T.ARRIVALDATE-
T.ENROUTEDATE)*24 AS INTEGER)) * 60 AS INTEGER)
FROM FIRE_INCIDENT_BASE_INFORMATION H RIGHT JOIN APPARATUSRESPONSE T
ON H.ID = T.ID;
Thanks again for your help,
Brad
--- In firebird-support@yahoogroups.com, Svein Erling Tysvaer
<svein.erling.tysvaer@...> wrote:
Thanks for your reply. That seems to work for the one table.
Hoever, after looking at it further that is the detail table and not
the master. I need to add the SQL code you mentioned below to the
following view. Do you have any ideas on how to do this?
CREATE VIEW SECONDAPPARATUSARRIVAL(
ID,
FDID,
LOCATION_ID,
INCIDENTNO,
INCIDENTTYPE,
EXPOSURE,
INSERVICEDATE,
ENROUTEDATE,
CLEARDATE,
APPARATUSID,
ARRIVALDATE,
DIFFHRS,
DIFFMIN)
AS
SELECT
H.ID,
H.FDID,
H.LOCATION_ID,
H.INCIDENTNO,
H.INCIDENTTYPE,
H.EXPOSURE,
T.INSERVICEDATE,
T.ENROUTEDATE,
T.CLEARDATE,
T.APPARATUSID,
T.ARRIVALDATE,
CAST(24*(T.ARRIVALDATE-T.ENROUTEDATE) AS INTEGER),
CAST((((T.ARRIVALDATE-T.ENROUTEDATE)*24)-CAST((T.ARRIVALDATE-
T.ENROUTEDATE)*24 AS INTEGER)) * 60 AS INTEGER)
FROM FIRE_INCIDENT_BASE_INFORMATION H RIGHT JOIN APPARATUSRESPONSE T
ON H.ID = T.ID;
Thanks again for your help,
Brad
--- In firebird-support@yahoogroups.com, Svein Erling Tysvaer
<svein.erling.tysvaer@...> wrote:
>one,
> Hi Brad!
>
> Another way to think of your problem, is that there should exist
> but but not two records with a prior datetime. Assuming there areno
> duplicate datetimes, you could then domultiple
>
> SELECT M1.ID, M1.MYDATETIME
> FROM MYTABLE M1
> WHERE EXISTS(
> SELECT * FROM MYTABLE M2
> WHERE M2.ID = M1.ID
> AND M2.MYDATETIME < M1.MYDATETIME)
> AND NOT EXISTS(
> SELECT * FROM MYTABLE M3
> JOIN MYTABLE M4 ON M3.ID = M4.ID
> WHERE M3.ID = M1.ID
> AND M3.MYDATETIME < M1.MYDATETIME
> AND M4.MYDATETIME < M3.MYDATETIME)
>
> HTH,
> Set
>
> legacydrum wrote:
> > I am in need of some SQL help. I have a detailed table with
> > records for each ID with date/times as listed below.greatest
> >
> > ID DATETIME
> > 2 1/14/2007 9:18:26 AM
> > 2 1/14/2007 9:20:10 AM
> > 2 1/14/2007 9:21:17 AM
> > 2 1/14/2007 9:23:05 AM
> > 3 1/20/2007 12:07:15 AM
> > 3 1/20/2007 12:09:19 AM
> > 3 1/20/2007 12:15:45 AM
> > 3 1/20/2007 12:22:50 AM
> >
> > I need to be able to query the data and return the second
> > time for each ID which would result as follows.greatly
> >
> > ID DATETIME
> > 2 1/14/2007 9:20:10 AM
> > 3 1/20/2007 12:09:19 AM
> >
> > If it were the first or last record, I could use SELECT MAX.
> > However, I am not sure how to do this. Any idea's would be
> > appreciated.
> >
> > Sincerely,
> >
> > Brad
>