Fwd: SQL help
Danny Lewkin
danny.lewkin at cognosis.be
Fri Jan 3 08:29:28 CST 2014
Hi Bill,
Is this what you mean:
SELECT voyageID FROM voyages WHERE v_date_d = (SELECT MAX(v_date_d) FROM voyages) AND v_shipID = 189
HTH,
Danny Lewkin
Cognosis NV
013/33 54 86
Dorpsstraat 28
3560 Lummen
Our office will be closed on:
24 (afternoon) - 25 - 31/12/2013 & 01/01/2014
>
>
>
>
>
> On 03 Jan 2014, at 14:46, william humphrey <bill at bluewatermaritime.com> wrote:
>
>> Bart
>>
>> SELECT voyageID FROM voyages WHERE MAX(v_date_d) AND v_shipID = 189
>>
>> It doesn't like to mix with aggregate clause
>>
>> On Thu, Jan 2, 2014 at 8:48 AM, william humphrey
>> <bill at bluewatermaritime.com> wrote:
>>> Bart
>>>
>>> Baring in mind what Ruslan said about not using RecId and seeing the
>>> method that Ivan showed me using ( ) I will try to do it with the
>>> date. I will play around using vStudio and try to get it using the
>>> max date from the records meeting the search less than the date of the
>>> current record.
>>>
>>> Bill
>>>
>>> On Thu, Jan 2, 2014 at 8:00 AM, Bart Pietercil
>>> <bart.pietercil at cognosis.be> wrote:
>>>> Multiple strategies come to mind to achieve what you are trying to do.
>>>>
>>>> 1) work with a creation_dt (timestamp default = npw)
>>>> when looking for the previous your where condition could determine the value
>>>> of the current creation_dt and take the max(creation_dt) from the records
>>>> where creation_dt < current_creation_dt
>>>> 2) work with a sequence that you maintain by yourself (probably easiest with
>>>> triggers)
>>>>
>>>> hth
>>>>
>>>> bart
>>>> —
>>>> Our office will be closed on:
>>>> 24 (afternoon) - 25 - 31/12/2013 & 01/01/2014
>>>>
>>>> Bart Pietercil
>>>> Sent with aMac
>>>>
>>>> On 2 Jan 2014 at 10:18:05, Ivan Smahin (ivan_smahin at paradigmasoft.com)
>>>> wrote:
>>>>
>>>>
>>>> On Jan 1, 2014, at 10:28 PM, Jay Madren <jay at jaymadren.com> wrote:
>>>>
>>>> Something like this should work:
>>>>
>>>> SELECT voyageID FROM voyages WHERE RecID = (SELECT RecID - 1 FROM voyages
>>>> WHERE voyageID = 'S1301')
>>>>
>>>>
>>>> It is wrong because of potentially wholes in RecIDs.
>>>>
>>>> Example:
>>>>
>>>> Let we have an empty t1 table.
>>>>
>>>> INSERT INTO t1 VALUES ...
>>>> INSERT INTO t1 VALUES ...
>>>> INSERT INTO t1 VALUES ...
>>>>
>>>> SELECT RecID FROM t1;
>>>> --
>>>> 1
>>>> 2
>>>> 3
>>>>
>>>> Now,
>>>> DELETE FROM t1 WHERE RecID = 2;
>>>>
>>>> SELECT RecID FROM t1;
>>>> --
>>>> 1
>>>> 3
>>>>
>>>> RecID == 2 is marked as deleted record and you can not access it.
>>>> "Virtually" it does not exist:
>>>>
>>>> SELECT RecID FROM t1 WHERE RecID = 2;
>>>> --
>>>> <empty result>
>>>>
>>>>
>>>> So you should not rely on RecID comparison.
>>>>
>>>> The solution might be following:
>>>>
>>>> SELECT voyuageID FROM voyuages WHERE RecID < (SELECT RecID FROM voyuages
>>>> WHERE voyuageID='S1301') ORDER BY RecID DESC LIMIT 1
>>>>
>>>> But it looks ugly and works pretty slow.
>>>>
>>>> I'm sure there is more elegant and proper solution if you describe exactly
>>>> why do you need to get the previous "physical" record.
>>>>
>>>>
>>>> --
>>>> Best regards,
>>>> Ivan Smahin
>>>> Senior Software Engineer
>>>> Paradigma Software, Inc
>>>> Valentina - The Ultra-Fast Database
>>>> http://www.valentina-db.com
>>>>
>>>> _______________________________________________
>>>> Valentina mailing list
>>>> Valentina at lists.macserve.net
>>>> http://lists.macserve.net/mailman/listinfo/valentina
>>>>
>>>>
>>>> _______________________________________________
>>>> Valentina mailing list
>>>> Valentina at lists.macserve.net
>>>> http://lists.macserve.net/mailman/listinfo/valentina
>>>>
>>>
>>>
>>>
>>> --
>>> http://www.bluewatermaritime.com
>>
>>
>>
>> --
>> http://www.bluewatermaritime.com
>> _______________________________________________
>> Valentina mailing list
>> Valentina at lists.macserve.net
>> http://lists.macserve.net/mailman/listinfo/valentina
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macserve.net/pipermail/valentina/attachments/20140103/9d5dffc0/attachment-0001.html>
More information about the Valentina
mailing list