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

  • Jeremy Gallman

    Jeremy Gallm

    11 NİSAN 2012
  • kalabrandmusic

    kalabrandmus

    25 Kasım 2009
  • SketchBookPro

    SketchBookPr

    6 Mayıs 2009