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

  • ItZWaffleS420

    ItZWaffleS42

    9 EYLÜL 2011
  • Jabari Johnson

    Jabari Johns

    18 Ocak 2008
  • wwjoshdew

    wwjoshdew

    1 AĞUSTOS 2007