このクエリは、複数の行を持つ可能性のある結合の最初の行のみを正常に返します。私は置き換えている今、何をしたいか結合で返された行の数のカウント
WITH RevisionProducts AS (
SELECT
qr.LeadID,
p.Code,
ROW_NUMBER() OVER(PARTITION BY qr.LeadID ORDER BY qr.LeadID DESC) rownumber
FROM
QuoteRevisions qr
JOIN ...
)
SELECT
l.LeadID,
...
co.Name,
rp1.Code,
0 AS CodeCount
FROM
Leads l
JOIN Companies co on co.CompanyID = l.CompanyID
JOIN RevisionProducts rp1 ON rp1.LeadID = l.ID AND rp1.rownumber = 1
...
0 AS CodeCount
... は参加で返されたであろう実際の行数と、我々はそれらすべてを許可されていました。これを行う方法を理解できません。
CTEが必要なのかどうか分かりませんが、カウントのために同じクエリを再度参照する必要がある可能性が高いため、CTEが便利かもしれません。
EDIT:
[OK]を、私はより明確にする必要があるようです。したがって、CTEでのクエリはWHERE句で実行してみましょう:
SELECT
qr.LeadID,
p.Code,
ROW_NUMBER() OVER(PARTITION BY qr.LeadID ORDER BY qr.LeadID DESC) rownumber
FROM
QuoteRevisions qr
JOIN ...
WHERE
qr.LeadID = 151
クエリが5行を返したとしましょう。したがって、最初のクエリでは、最初の行だけに結合を制限しないと、Lead.LeadIDが151になったときに結合が5行返されます。したがって、最終データセットでは、5行rp1.Code列以外は同じです。
私はすでに行の数を1に制限しています。これは私が望むものです。しかし今、返された行の数を知りたい。
私はそれがより理にかなってほしいです。
私は完全にここで混乱しています。 「参加したときに返されただろう、私たちすべてが許された」とはどういう意味ですか?私は何度も何度もそれを読んできましたが、それはまったく意味がありません。いくつかのグループごとに行数を取得しようとしていますか?あなたはCOUNTを使って見ましたか?私たちがここで助けることができる前に、あなたはいくつかの詳細を提供しなければならないでしょう。これは始めるのに適しています。 http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ –
フィードバックが良いです。 OP –