SORU
10 EYLÜL 2008, ÇARŞAMBA


Nasıl (ya da ben) birden çok sütun üzerinde FARKLI seçebilirim?

2 sütun kombine farklı bir tablodan tüm satırları almak istiyorum. Aynı fiyata aynı gün gerçekleşen başka bir satış olmayan tüm satış istiyorum. Gün ve fiyat dayalı benzersiz olan satış aktif durumuna güncellenecektir.

Düşünüyorum da:

UPDATE sales
SET status = 'ACTIVE'
WHERE id IN (SELECT DISTINCT (saleprice, saledate), id, count(id)
             FROM sales
             HAVING count = 1)

Ama beynim herhangi bir uzak daha olacak acıyor.

CEVAP
10 EYLÜL 2008, ÇARŞAMBA


SELECT DISTINCT a,b,c FROM t

kabacaeşdeğer:

SELECT a,b,c FROM t GROUP BY a,b,c

Daha güçlü olarak GROUP BY sözdizimi için kullanılan, almak için iyi bir fikirdir.

Sorgunuz için şu şekilde yapardım:

UPDATE sales
SET status='ACTIVE'
WHERE id IN
(
    SELECT id
    FROM sales S
    INNER JOIN
    (
        SELECT saleprice, saledate
        FROM sales
        GROUP BY saleprice, saledate
        HAVING COUNT(*) = 1 
    ) T
    ON S.saleprice=T.saleprice AND s.saledate=T.saledate
 )

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • lilstevie89

    lilstevie89

    25 Mart 2011
  • Pál Zoltán Illés

    Pál Zoltán

    30 NİSAN 2007
  • Smith Micro Graphics

    Smith Micro

    15 Mayıs 2008