ここでこのエラーメッセージを何度も見ましたが、特定の問題の解決策が得られていません (おそらく私は sql の専門家ではないため)。エラー。
これは私が実行しようとしているクエリです:
SELECT DISTINCT U.FB_UserId
, U.Id AS GameUserID
, U.FbLocale
, U.FbGender
, U.FbBirthday
, U.RegistredAt
, U.LoginCount
, U.PlayCount
, U.MarketGroupId
, (SELECT COUNT(C.PriceFbCredits)
WHERE UserID = U.Id) AS Payments
, (SELECT SUM(CASE WHEN C.PriceFbCredits = 13 THEN 1 END)
WHERE UserID = U.Id) AS P13
, (SELECT SUM(CASE WHEN C.PriceFbCredits = 52 THEN 1 END)
WHERE UserID = U.Id) AS P52
, (SELECT SUM(CASE WHEN C.PriceFbCredits = 130 THEN 1 END)
WHERE UserID = U.Id) AS P130
FROM [dbo].[User] AS U WITH (NOLOCK) INNER JOIN [dbo].[FbCreditsCallback] AS C WITH (NOLOCK) ON C.UserId = U.Id
もしそうなら、私はエラーメッセージを受け取ります。OK、それが何を意味するかはわかっていますし、何をすべきかはある程度理解していますが、それを行っても、望む結果が得られないと思います... 特定のuserid
. 一部のデータは合計する必要があり、一部はカウントする必要があり、結果リストには各 ID が 1 回だけ表示される必要があります。
さて、これが面白いことです(私にとって)。このように内側の SELECT クエリを記述しても、エラーは発生しません。しかし、返されたデータが正しいかどうかはわかりません。
, (SELECT COUNT(PriceFbCredits)
FROM [dbo].[FbCreditsCallback]
WHERE UserID = U.Id) AS Payments
... 正直なところ、私は道に迷いました。助けを求めています。