GROUP BY clause and CASE statement – need help

Discussion in 'MySQL' started by rahulephp, Oct 15, 2010.

  1. #1
    I have a table with 4 columns

    Table name = products
    Column name = product_id, product_programname, product_title, model_number

    When I use GROUP BY with model_number, it alway returns me the info of product (ebay) which comes first in the queue.
    But i want to get the title from 'argos' if not null else 'buy' if not null etc.

    The below query doesn't works for me.

    
    SELECT *,
    (
    case(true)
    WHEN product_programname = 'argos' AND product_programname IS NOT NULL
    THEN product_title
    
    WHEN product_programname = 'buy' AND product_programname IS NOT NULL
    THEN product_title
    
    WHEN product_programname = 'amazon' AND product_programname IS NOT NULL
    THEN product_title
    
    WHEN product_programname = 'ebay' AND product_programname IS NOT NULL
    THEN product_title
    
    WHEN product_programname = 'next' AND product_programname IS NOT NULL
    THEN product_title
    
    END
    ) as final_title
    
    FROM products
    GROUP BY model_number
    
    Code (markup):
    Please assist how come it'll be possible.
     
    rahulephp, Oct 15, 2010 IP
  2. koko5

    koko5 Active Member

    Messages:
    394
    Likes Received:
    14
    Best Answers:
    1
    Trophy Points:
    70
    #2
    Just use COALESCE.
    This is incorrect usage of group by clause :
     
    koko5, Oct 15, 2010 IP