24 ŞUBAT 2009, Salı
Nasıl bir kayıt (select top 1) Her kayıt için bir sorgu (SQL Server) birden fazla sütun seçin ana sorguda yapabilir miyim?
Bir sorgu bu sözdizimini kullanarak bir sütun seçin Biliyorum:
SELECT A.SalesOrderID, A.OrderDate,
(
SELECT TOP 1 B.Foo
FROM B
WHERE A.SalesOrderID = B.SalesOrderID
) AS FooFromB
FROM A
WHERE A.Date BETWEEN '2000-1-4' AND '2010-1-4'
Ama bir alt sorgu (benim durumumda select top 1 alt sorgu) birden çok sütun kullanmak için doğru sözdizimi nedir? Çok teşekkür ederim.
CEVAP
25 ŞUBAT 2009, ÇARŞAMBA
Burada bir alt sorgunun birden fazla sütun seçmek için nasıl genellikle
SELECT
A.SalesOrderID,
A.OrderDate,
SQ.Max_Foo,
SQ.Max_Foo2
FROM
A
LEFT OUTER JOIN
(
SELECT
B.SalesOrderID,
MAX(B.Foo) AS Max_Foo,
MAX(B.Foo2) AS Max_Foo2
FROM
B
GROUP BY
B.SalesOrderID
) AS SQ ON SQ.SalesOrderID = A.SalesOrderID
Eğer sen sonuçta yapmaya çalıştığı almak değerlerden en satır ile en yüksek değeri için Foo (yerine max Foo ve max Foo2 - bu aynı şey DEĞİL) sonra aşağıdaki genellikle işe daha iyi bir alt sorgu:
SELECT
A.SalesOrderID,
A.OrderDate,
B1.Foo,
B1.Foo2
FROM
A
LEFT OUTER JOIN B AS B1 ON
B1.SalesOrderID = A.SalesOrderID
LEFT OUTER JOIN B AS B2 ON
B2.SalesOrderID = A.SalesOrderID AND
B2.Foo > B1.Foo
WHERE
B2.SalesOrderID IS NULL
Temelde söylüyorsun, aynı Salesorderıd ile B herhangi bir satır ve daha büyük bir Foo bulamıyorum bana B satır ver.
Bunu Paylaş:
Nasıl " için SQL Server bir işlevi...
Nasıl kullanılır mySQL değiştirebilir ...
Nasıl açık birden fazla dosya "Py...
Nasıl WPF veri tetiklemek için birden ...
Nasıl JavaScript bir PHP düzenli ifade...