以下のコードで奇妙なエラーが発生します。No column was specified for column 2 of 'no1'.
私が知る限り、それはうまくいくはずです。私は単に、顧客がレシート tbl に複数存在する顧客に関する詳細のコレクションを取得しようとしています。
SELECT
CM.ClientID,
CPN.Birthdate,
CM.ClientPassword
FROM
dbo.ClientMaster AS CM
JOIN dbo.ClientPerson AS CPN ON (CM.ClientID = CPN.ClientID)
JOIN dbo.ClientProduct AS CP ON (CPN.ClientID = CP.ClientID)
WHERE
CM.ClientID IN (
SELECT
no1.ClientID
FROM
(
SELECT
CM.ClientID,
COUNT(*)
FROM
dbo.ClientMaster AS CM
JOIN dbo.ClientPerson AS CPN ON (CM.ClientID = CPN.ClientID)
JOIN dbo.ClientProduct AS CP ON (CPN.ClientID = CP.ClientID)
WHERE
CP.PolicyNo IN (SELECT PolicyNo FROM Receipts)
AND CM.ClientID IS NOT NULL
AND Birthdate IS NOT NULL
AND ClientPassword IS NOT NULL
GROUP BY
CM.ClientID
HAVING
COUNT(*)>1
) AS no1
)
解決
ああ、 の が必要ないことに気づいていませんでしCount(*)
たSelect
。みんなありがとう!これが私が最終的に行ったものです。
SELECT DISTINCT
CM.ClientID,
CPN.Birthdate,
CM.ClientPassword
FROM
dbo.ClientMaster AS CM
JOIN dbo.ClientPerson AS CPN ON (CM.ClientID = CPN.ClientID)
JOIN dbo.ClientProduct AS CP ON (CPN.ClientID = CP.ClientID)
WHERE
CM.ClientID IN (
SELECT
ClientID
FROM
Receipts
GROUP BY
ClientID
HAVING
COUNT(*)>1
)
AND CM.ClientID IS NOT NULL
AND Birthdate IS NOT NULL
AND ClientPassword IS NOT NULL