Ok I tried the following
SELECT dealer_id, auto_id, bid_amount FROM bids WHERE bid_amount=(SELECT
MAX(bid_amount) FROM bids WHERE auto_dealer_id='3');
which gives
+-----------+---------+------------+
| dealer_id | auto_id | bid_amount |
+-----------+---------+------------+
|         3 |      12 |      90000 |
+-----------+---------+------------+
1 row in set (0.00 sec)

wich is the max bid overall, what I want is the max bid for each auto_id ...

How would I go about this ?

On 3/17/06, Michael Stassen <[EMAIL PROTECTED]> wrote:
>
> Gregory Machin wrote:
> > Hi.
> > I have the following table
> >
> > | bid_id | dealer_id | auto_dealer_id | auto_id | bid_amount | timestamp
> |
> > Bid_Status |
> >
> +---------+-------------+----------------------+------------+-----------------+----------------+-----------------+
> > |       1 |            3 |                     3 |        12 |
> 20000
> > |         NULL |              1 |
> > |       2 |            3 |                     3 |        12 |
> 30000
> > |         NULL |              1 |
> > |       3 |          24 |                     3 |        12 |
> 40000
> > |         NULL |              1 |
> > |       4 |          24 |                     3 |        12 |
> 50000
> > |         NULL |              1 |
> > |       5 |          24 |                     3 |        12 |
> 60000
> > |         NULL |              1 |
> > |       6 |            3 |                   24 |        14 |
> 40000
> > |         NULL |              1 |
> > |       7 |            3 |                     3 |        13 |
> 40000
> > |         NULL |              1 |
> > |       8 |          24 |                     3 |         12
> |        70000
> > |         NULL |              1 |
> > |       9 |          24 |                     3 |        13 |
> 59000
> > |         NULL |              1 |
> > |     10 |          24 |                     3 |        12 |
> 80000
> > |         NULL |              1 |
> > |     11 |          24 |                     3 |        13 |
> 60000
> > |         NULL |              1 |
> >
> >
> > where auto_dealer_id is the dealer who put the car on auction ,
> > auto_id is the id of the car on auction,
> > bid_amount is the amount did on the car but dealer_id
> >
> >
> > what I want is to get the max bid placed for each car and the dealer_id
> who
> > placed it.
> > I currnetly have the following:
> > mysql> SELECT dealer_id, auto_id, bid_id ,MAX(bid_amount) AS
> 'bid_amount'
> > FROM bids  WHERE auto_dealer_id = '3' AND Bid_Status = '1' GROUP BY
> auto_id;
> > +-----------+---------+--------+------------+
> > | dealer_id | auto_id | bid_id | bid_amount |
> > +-----------+---------+--------+------------+
> > |         3 |      12 |      1 |      80000 |
> > |         3 |      13 |      7 |      60000 |
> > +-----------+---------+--------+------------+
> >
> > But this output is wrong because if you refer to the source table above
> the
> > dealer_id should be 24 in both cases..
> > What have I missed ?
> >
> > Many Thanks
> > Gregory Machin
>
> GROUP BY does not return rows.  It returns group names and aggregate
> stats.  You
> are grouping on auto_id, so you get random (actually, the first found)
> values
> for dealer_id and bid_id for each group.  Many systems wouldn't even allow
> this
> query.  Mysql does allow you to select columns not present in the GROUP BY
> clause as a convenience, but you are warned only to use columns with
> unique
> values per group
> <http://dev.mysql.com/doc/refman/4.1/en/group-by-hidden-fields.html>.
>
> Yours is a FAQ, however, with 3 solutions in the manual
> <
> http://dev.mysql.com/doc/refman/4.1/en/example-maximum-column-group-row.html
> >.
>
> Michael
>



--
Gregory Machin
[EMAIL PROTECTED]
[EMAIL PROTECTED]
www.linuxpro.co.za
www.exponent.co.za
Web Hosting Solutions
Scalable Linux Solutions
www.iberry.info (support and admin)

+27 72 524 8096

Reply via email to