-2

サブセレクト クエリを実行しようとしていますが、エラーが発生します。この種のロジックを実行できるかどうかわかりません。

SELECT (SELECT SERV_ACCT, ACCOUNT, SERV_ADDRESS
FROM tblAPSData

JOIN tblMEP_Meters
ON tblMEP_Meters.ServiceAccount = tblAPSData.SERV_ACCT

WHERE SERV_Acct = ServiceAccount
AND INV_DATE > DATEADD(month, -6, getdate())
GROUP BY SERV_ACCT, ACCOUNT, SERV_ADDRESS
HAVING count(SERV_ACCT) = 1) AS AccountMeter

FROM tblMEP_Customers

これはエラー メッセージです: メッセージ 116、レベル 16、状態 1、行 48 サブクエリが EXISTS で導入されていない場合、選択リストに指定できる式は 1 つだけです。

問題なくコンパイルされるこのコードもあります。同じロジックを使用していますが、なぜ機能しないのかわかりません。このコードは、実行すると機能します。

SELECT SiteName = tblMEP_Sites.Name, BillingMonth = DateTimeStamp,
    ElectricConsumption = (SELECT SUM(Consumption)
    FROM tblMEP_Meters (nolock)
    JOIN tblMEP_MonthlyData (nolock)
    ON MeterID = tblMEP_Meters.ID
    WHERE SiteID = tblMEP_Sites.ID
    AND Type = 1
    AND BillingMonth = DATEADD(month, -6, getdate()))

    FROM tblMEP_Customers
4

1 に答える 1

1

上記のコードを減らすと

SELECT (SELECT SERV_ACCT, ACCOUNT, SERV_ADDRESS
FROM tblAPSData 
....
) AS AccountMeter

FROM tblMEP_Customers

SERV_ACCT, ACCOUNT, SERV_ADDRESS、選択できない 3 つのフィールドを選択しようとしていることがわかりますAccountMeter
2番目の作業例では、1つの値のみSUM(Consumption)が選択されています。
クエリでtblMEP_Customers への参照を検出SELECT ( ...) AS AccountMeterできないため、目的の出力に対する解決策を提供できません。

于 2013-07-12T19:06:09.740 に答える