計算列を SELECT ステートメントに追加するまでは、正常に実行される SQL Server クエリがあります。その後、奇妙な SQL Server エラーが発生します。
SQLは次のとおりです。
SELECT
outmail_.MessageID_,
CONVERT(VARCHAR(10),outmail_.Created_,120) AS 'Issue',
lyrReportSummaryData.mailed,
lyrReportSummaryData.successes,
COUNT(*) AS 'opens',
COUNT(DISTINCT clicktracking_.MemberID_) AS 'unique_opens',
convert(decimal(3,1),((convert(float,[unique_opens]))/[successes]) * 100) AS 'Rate'
FROM
outmail_
RIGHT JOIN
clicktracking_ ON clicktracking_.MessageID_ = outmail_.MessageID_
RIGHT JOIN
lyrReportSummaryData ON lyrReportSummaryData.id = clicktracking_.MessageID_
GROUP BY
outmail_.MessageID_, CONVERT(VARCHAR(10), outmail_.Created_,120),
lyrReportSummaryData.mailed, lyrReportSummaryData.successes
問題は、で始まる行convert(decimal ...
です。含まれていると、次のエラーが発生します。
エラー 8120: 列 'lyrReportSummaryData.unique_opens' は、集計関数にも GROUP BY 句にも含まれていないため、選択リストでは無効です。
エラーを句で使用する方法がわからないため、エラーを解決する方法がわかりませんGROUP BY
(そうする必要はないようです)。
続行する方法について何か提案はありますか? ありがとう。