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

  • EmperorTigerstar

    EmperorTiger

    14 EYLÜL 2009
  • Maschine Tutorials

    Maschine Tut

    15 ŞUBAT 2011
  • SHAYTARDS

    SHAYTARDS

    1 EKİM 2008