質問
しています SELECT
決算
SELECT SUM(dbo.DLData.Quantity)
FROM dbo.MasterDates
JOIN dbo.DLData ON MasterDates.[ID] = dbo.DLData.DownloadID
WHERE dbo.MasterDates.[Date] BETWEEN @From AND @To
AND dbo.MasterDates.SiteID = @X
場合はプラグインの @From
, @To
や @X
ことができる。この右側の比較です。しかし、比較の @X
ニーズから左手側として SELECT
外側はテストを毎 SiteID
セットになっています。この条項の条項です。彼らが必要となります。こちらはselectステートを選択します。最終的にはhaving条項を決定する重要製品のためのサイトです。
--INSERT INTO SiteKeyProducts
SELECT dbo.MasterDates.SiteID as SiteID , dbo.DLData.Product as ProductID
FROM dbo.MasterDates
JOIN dbo.DLData ON dbo.MasterDates.[ID] = dbo.DLData.DownloadID
WHERE dbo.MasterDates.[Date] BETWEEN @From AND @To
GROUP BY dbo.MasterDates.SiteID , dbo.DLData.Product
HAVING
SUM(dbo.DLData.Quantity) > 960 OR
SUM(dbo.DLData.Quantity) > (SELECT SUM(dbo.DLData.Quantity)
FROM dbo.MasterDates
JOIN dbo.DLData ON MasterDates.[ID] = dbo.DLData.DownloadID
WHERE dbo.MasterDates.[Date] BETWEEN @From AND @To
AND dbo.MasterDates.SiteID = @X)
ORDER BY dbo.MasterDates.SiteID
使い分けが面倒くさくないの外条項内です。 地獄に私は全く身に覚えがないのですが知っていただく場合に正しい用語を記述して私の課題です。
Arrgghhセットに基づく論理は私の頭!!
解決 2
マットウィットフィールド の お願いします。sqlservercentral StackExchangeサイトに以下の回答 この問題:
SELECT outerMaster.SiteID as SiteID , dbo.DLData.Product as ProductID
FROM dbo.MasterDates outerMaster
JOIN dbo.DLData ON outerMaster.[ID] = dbo.DLData.DownloadID
WHERE outerMaster.[Date] BETWEEN @From AND @To
GROUP BY outerMaster.SiteID , dbo.DLData.Product
HAVING
SUM(dbo.DLData.Quantity) > 960 OR
SUM(dbo.DLData.Quantity) > (SELECT SUM(dbo.DLData.Quantity)
FROM dbo.MasterDates innerMaster
JOIN dbo.DLData ON innerMaster.[ID] = dbo.DLData.DownloadID
WHERE innerMaster.[Date] BETWEEN @From AND @To
AND innerMaster.SiteID = outerMaster.SiteID)
ORDER BY outerMaster.SiteID
や RickD たこの答えに ask.sqlteam.com サイト:
--INSERT INTO SiteKeyProducts
SELECT
MD.SiteID as SiteID ,
DLD.Product as ProductID
FROM dbo.MasterDates MD
JOIN dbo.DLData DLD
ON MD.[ID] = DLD.DownloadID
LEFT JOIN (SELECT SiteID,
SUM(dbo.DLData.Quantity) SumMDQuantity
FROM dbo.MasterDates
JOIN dbo.DLData ON MasterDates.[ID] = dbo.DLData.DownloadID
WHERE dbo.MasterDates.[Date] BETWEEN @From AND @To
GROUP BY SiteID) as sumMD
ON sumMD.SiteID = MD.SiteID
WHERE MD.[Date] BETWEEN @From AND @To
GROUP BY MD.SiteID , DLD.Product
HAVING
SUM(DLD.Quantity) > 960 OR
SUM(DLD.Quantity) > sumMD.SumMDQuantity
ORDER BY MD.SiteID
仕事も、もMatts棚に収納されず、テーブルに置Ricks努力にもかかわらず、初期スク以外のリスクにつき意見を表参うになります。Mattsか~2m10sがRicksか~2m40このために最大のライブのデータベースとしても以外に10s試験dbです。
他のヒント
私が持っ声明
でそれを使用しないで、あなたはこのサブクエリに参加したいと思いますSELECT SUM(dbo.DLData.Quantity)
FROM dbo.MasterDates
JOIN dbo.DLData ON MasterDates.[ID] = dbo.DLData.DownloadID
WHERE dbo.MasterDates.[Date] BETWEEN @From AND @To
AND dbo.MasterDates.SiteID = @X
所属していません StackOverflow