2つの値を返すクエリがあります。私は最大値を持ちたいので、私はグループを作ってからMAXをします。しかし、私は3つの他のカラム(varchar)を持っています。SQLグループを使用して同じvarchar値を維持する
例。私が欲しいもの
OId CId FName LName BName
18477 110 Hubba Bubba whoa
158 110 Test2 Person2 leee
は OID CIDます。FName LNAME BNAME
18477 110 Hubba Bubba whoa
は、だから私はCIDによってそれらをグループにしたいです。そして、私は最大の数字を保持したいと思っています。 FName、LName、またはBNameは、選択されているOldを持つものにしたいので、MinまたはMaxを使用できません。他の行のFName、LName、およびBNameは、私が欲しい/必要としない行です。
SELECT TOPを使用しようとしましたが、文字通り1行しか取得できません。倍数が必要です。あなたと仮定すると
SQL
INSERT INTO #CustomerInfoAll(FName, LName, BName, OwnerId, CustomerId)
SELECT
-- what goes here --(o.FirstName) AS FName,
-- what goes here --(o.LastName) AS LName,
-- what goes here --(o.BusinessName) AS BName,
MAX(o.OId) AS OId,
(r.CId) AS CId
FROM Owner o
INNER JOIN Report r
ON o.ReportId = r.ReportId
WHERE r.CId IN (SELECT CId FROM #ThisReportAll)
AND r.Completed IS NOT NULL
GROUP BY r.CId
ORDER BY OId DESC;
どのバージョンのSQL Serverですか? – ErikE
私が現在使用しているSQL Serverは2008 R2 –