Справка по SQL-запросу с неуникальными дубликатами

Я не могу осмыслить этот. У меня такой запрос:

SELECT 
    p.person_id,
    p.first_nm,
    p.last_nm, 
    pu.purchase_dt,
    pr.sku, 
    pr.description,
    a.address_type_id,
    a.city_cd, 
    a.state_cd, 
    a.postal_cd
FROM 
    person p 
    INNER JOIN address a ON p.person_id = a.person_id
    INNER JOIN purchase pu ON pu.person_id = p.person_id
    INNER JOIN product pr ON pr.product_id = pu.product_id

Достаточно просто - мне просто нужно получить информацию для клиентов, которым мы отправили возврат. Однако из-за таблицы addressType

AddressType

address_type_id    address_type_desc
------------------------------------
1            Home
2            Shipping

у некоторых клиентов есть несколько адресов в таблице адресов, создавая неуникальные повторяющиеся записи, подобные этой.

1,Smith, John, 12/01/2009, A12345, Purple Widget, 1, Anywhere, CA, 12345
1,Smith, John, 12/01/2009, A12345, Purple Widget, 2, Somewhere, ID, 54321

Я бы хотел, чтобы запрос возвращал только одну строку / человека и возвращал домашний адрес, если есть, в противном случае верните адрес доставки.

Это кажется достаточно простым, и, возможно, это просто моя простуда, но это заставляет меня немного чесать голову.

5
задан Andy Evans 29 November 2010 в 19:58
поделиться