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

  • Dylan Brenan

    Dylan Brenan

    22 Aralık 2009
  • MarinaHD2001

    MarinaHD2001

    7 ŞUBAT 2009
  • sghaff1

    sghaff1

    23 Mart 2009