Hi All
First off let me state that any assistance that could be assistance/suggestions with this would be greatly appreciated… And I’ll give you the disclaimer to start. I’m an Access guy who is learning painfully that Access SQL isn’t quite the same as is required for Oracle..
But this works in Access…![Smile :) :)](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
What I am trying to do Is bring in data from four tables feed it two where statements specifying specific criteria and pull in the First TRIPID and the MAX of EFFCALC..
For what its worth, the Access query (with slightly different table names, but the same field names is below)
SELECT GEAR_02_03.LATITUDE_DD AS LAT_DD, GEAR_02_03.LONGITUDE_DD AS LONG_DD, Max([VPS_VESSEL]![EFFCALC]) AS EFF, GEAR_02_03.GEARCODE, TRIP_02_03.DATELND1, Format(TRIP_02_03!DATELND1,'yyyy_mm') AS Step, First(TRIP_02_03.TRIPID) AS FirstOfTRIPID
FROM SPECIES_02_03 INNER JOIN ((TRIP_02_03 INNER JOIN VPS_VESSEL ON TRIP_02_03.HULLNUM = VPS_VESSEL.HULL_ID) INNER JOIN GEAR_02_03 ON TRIP_02_03.TRIPID = GEAR_02_03.TRIPID) ON SPECIES_02_03.TRIPID = TRIP_02_03.TRIPID
WHERE (((SPECIES_02_03.SPPCODE)="POLL" Or (SPECIES_02_03.SPPCODE)="COD" Or (SPECIES_02_03.SPPCODE)="HADD" Or (SPECIES_02_03.SPPCODE)="FLYT" Or (SPECIES_02_03.SPPCODE)="FLGS" Or (SPECIES_02_03.SPPCODE)="FLDAB" Or (SPECIES_02_03.SPPCODE)="FLBB"))
GROUP BY GEAR_02_03.LATITUDE_DD, GEAR_02_03.LONGITUDE_DD, GEAR_02_03.GEARCODE, TRIP_02_03.DATELND1
HAVING (((GEAR_02_03.GEARCODE)="OTF" Or (GEAR_02_03.GEARCODE)="OTC"));
The problem is getting this working with Oracle..
At the moment this is what I have (that works but is not complete)
SELECT veslogg.latitude_dd AS lat_dd,
veslogg.longitude_dd AS long_dd,
veslogt.tripid,
vps_vessel.effcalc,
veslogg.gearcode,
veslogt.datelnd1,
to_char(veslogt.datelnd1, 'yyyy_MM') AS
step
FROM veslogs
INNER JOIN((veslogt
INNER JOIN vps_vessel ON veslogt.hullnum = vps_vessel.hull_id)
INNER JOIN veslogg ON veslogt.tripid = veslogg.tripid) ON veslogs.tripid = veslogt.tripid
WHERE((veslogs.sppcode) IN('POLL', 'COD', 'HADD', 'FLYT', 'FLGS', 'FLDAB', 'FLBB'))
AND((veslogg.gearcode) IN('OTC', 'OTF'))
My problem is twofold
That query returns numerous trips (TRIPID) with multiple effort (EFFCALC)
I need to get it returning one TRIPID with the Max EFFCALC.
I was assuming something like this would work.. .but it doesn’t
SELECT veslogg.latitude_dd AS lat_dd,
veslogg.longitude_dd AS long_dd,
veslogt.tripid,
max(vps_vessel.effcalc) as MaxEFF,
veslogg.gearcode,
veslogt.datelnd1,
to_char(veslogt.datelnd1, 'yyyy_MM') AS
step
FROM veslogs
INNER JOIN((veslogt
INNER JOIN vps_vessel ON veslogt.hullnum = vps_vessel.hull_id)
INNER JOIN veslogg ON veslogt.tripid = veslogg.tripid) ON veslogs.tripid = veslogt.tripid
WHERE((veslogs.sppcode) IN('POLL', 'COD', 'HADD', 'FLYT', 'FLGS', 'FLDAB', 'FLBB'))
AND((veslogg.gearcode) IN('OTC', 'OTF'))
Group by veslogt.tripid
Is this a having/where issue or am I just doing (or not doing) something stupid??
Thanks
-eric
First off let me state that any assistance that could be assistance/suggestions with this would be greatly appreciated… And I’ll give you the disclaimer to start. I’m an Access guy who is learning painfully that Access SQL isn’t quite the same as is required for Oracle..
But this works in Access…
What I am trying to do Is bring in data from four tables feed it two where statements specifying specific criteria and pull in the First TRIPID and the MAX of EFFCALC..
For what its worth, the Access query (with slightly different table names, but the same field names is below)
SELECT GEAR_02_03.LATITUDE_DD AS LAT_DD, GEAR_02_03.LONGITUDE_DD AS LONG_DD, Max([VPS_VESSEL]![EFFCALC]) AS EFF, GEAR_02_03.GEARCODE, TRIP_02_03.DATELND1, Format(TRIP_02_03!DATELND1,'yyyy_mm') AS Step, First(TRIP_02_03.TRIPID) AS FirstOfTRIPID
FROM SPECIES_02_03 INNER JOIN ((TRIP_02_03 INNER JOIN VPS_VESSEL ON TRIP_02_03.HULLNUM = VPS_VESSEL.HULL_ID) INNER JOIN GEAR_02_03 ON TRIP_02_03.TRIPID = GEAR_02_03.TRIPID) ON SPECIES_02_03.TRIPID = TRIP_02_03.TRIPID
WHERE (((SPECIES_02_03.SPPCODE)="POLL" Or (SPECIES_02_03.SPPCODE)="COD" Or (SPECIES_02_03.SPPCODE)="HADD" Or (SPECIES_02_03.SPPCODE)="FLYT" Or (SPECIES_02_03.SPPCODE)="FLGS" Or (SPECIES_02_03.SPPCODE)="FLDAB" Or (SPECIES_02_03.SPPCODE)="FLBB"))
GROUP BY GEAR_02_03.LATITUDE_DD, GEAR_02_03.LONGITUDE_DD, GEAR_02_03.GEARCODE, TRIP_02_03.DATELND1
HAVING (((GEAR_02_03.GEARCODE)="OTF" Or (GEAR_02_03.GEARCODE)="OTC"));
The problem is getting this working with Oracle..
At the moment this is what I have (that works but is not complete)
SELECT veslogg.latitude_dd AS lat_dd,
veslogg.longitude_dd AS long_dd,
veslogt.tripid,
vps_vessel.effcalc,
veslogg.gearcode,
veslogt.datelnd1,
to_char(veslogt.datelnd1, 'yyyy_MM') AS
step
FROM veslogs
INNER JOIN((veslogt
INNER JOIN vps_vessel ON veslogt.hullnum = vps_vessel.hull_id)
INNER JOIN veslogg ON veslogt.tripid = veslogg.tripid) ON veslogs.tripid = veslogt.tripid
WHERE((veslogs.sppcode) IN('POLL', 'COD', 'HADD', 'FLYT', 'FLGS', 'FLDAB', 'FLBB'))
AND((veslogg.gearcode) IN('OTC', 'OTF'))
My problem is twofold
That query returns numerous trips (TRIPID) with multiple effort (EFFCALC)
I need to get it returning one TRIPID with the Max EFFCALC.
I was assuming something like this would work.. .but it doesn’t
SELECT veslogg.latitude_dd AS lat_dd,
veslogg.longitude_dd AS long_dd,
veslogt.tripid,
max(vps_vessel.effcalc) as MaxEFF,
veslogg.gearcode,
veslogt.datelnd1,
to_char(veslogt.datelnd1, 'yyyy_MM') AS
step
FROM veslogs
INNER JOIN((veslogt
INNER JOIN vps_vessel ON veslogt.hullnum = vps_vessel.hull_id)
INNER JOIN veslogg ON veslogt.tripid = veslogg.tripid) ON veslogs.tripid = veslogt.tripid
WHERE((veslogs.sppcode) IN('POLL', 'COD', 'HADD', 'FLYT', 'FLGS', 'FLDAB', 'FLBB'))
AND((veslogg.gearcode) IN('OTC', 'OTF'))
Group by veslogt.tripid
Is this a having/where issue or am I just doing (or not doing) something stupid??
Thanks
-eric