Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Need Help with SQL Statement
Message
From
19/09/1997 16:13:22
 
 
To
19/09/1997 16:07:37
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Miscellaneous
Thread ID:
00050724
Message ID:
00050788
Views:
34
>>>>>>>Can anyone tell me if the following can be done in a one line select statement. I cannot seem to get the results I require.
>>>>>>>
>>>>>>>I have one table with the following fields: Customer, Date, Price. I am simply trying to get the last price quoted to the customer.
>>>>>>>
>>>>>>>CustA, 01/01/01, 100
>>>>>>>CustA, 01/01/97, 111
>>>>>>>CustB, 02/02/96, 200
>>>>>>>CustB, 02/02/02., 222
>>>>>>>
>>>>>>>I want my result to be:
>>>>>>>
>>>>>>>CustA, 01/01/97, 111
>>>>>>>CustB, 02/02/96, 200
>>>>>>>
>>>>>>>If I use SELECT * FROM myTable ORDER BY Date DESC GROUP BY Customer
>>>>>>>I get ...
>>>>>>>CustA, 01/01/01, 100
>>>>>>>CustB, 02/02/01, 222
>>>>>>>
>>>>>>>Again, I am looking for the last price quoted only.
>>>>>>>
>>>>>>>Any help would be greatly appreciated.
>>>>>>>
>>>>>>>-Isaac Roda
>>>>>>
>>>>>>Sorry, it's two lines:
>>>>>>select * from table1 into cursor tmp1 order by customer,date
>>>>>>select * from tmp1 group by customer
>>>>>
>>>>>Ed:
>>>>>
>>>>>If the data field was a Date-Time field, do you think the following would work:
>>>>>
>>>>>Select Customer, max(Date), Price from Table1
>>>>>
>>>>Surely not, because it must be grouped. BTW, I have tested my answer, and I always do this before posting something here.
>>>
>>>I note that Ed Pikman's reply did NOT use the "DESC" in the SELECT. Isaac, try it both ways.
>>>
>>>Barbara
>>
>>Why both? One is enough. Group always retains the last record.
>
>Isaac didn't mention if he was using VFP 5.0 or not, but isn't this what the 'TOP n' synatax is for?
>'select top n * from table1 where customer = somecustomer order by date desc'

Not exactly. The prupose of the query was to group records for all customers (returning one particular record for each one). It's old trick: group retains the last record, so data should be sorted first.
Edward Pikman
Independent Consultant
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform