-1
私は関心のある仕入先IDを取り込み、仕入先の名前とすべての請求書の合計を印刷するストアドプロシージャspSumInvoices
を作成します。なぜこれですか?) 'エラーが発生しましたか?
これは私がストアドプロシージャに新たなんだその右かどうかわからなく、使用していますコードです:
IF OBJECT_ID ('spSumInvoices') IS NOT NULL
DROP PROC spSumInvoices;
GO
CREATE PROC spSumInvoices
@FindVen int,
@InvoiceTotal Money,
@VenName VARCHAR
AS
BEGIN
SELECT
@FindVen, SUM(InvoiceTotal) AS 'Total', @VenName
FROM
Vendors,Invoices
WHERE
Invoices.VendorID = @FindVen
GROUP BY
@InvoiceTotal
END
PRINT 'Vendor' + @VenName
PRINT 'Has an invoice total of $' + CONVERT(VARCHAR,@InvoiceTotal);
私はこのエラーを取得する:
Msg 164, Level 15, State 1, Procedure spSumInvoices, Line 15
Each GROUP BY expression must contain at least one column that is not an outer reference.
「CONVERT」には、ターゲットデータ型パラメータがありません。あなたは 'VendorName'のためにそれを必要としないので完全に削除するべきです。 – Filburt
私はvarcharになるデータ型を置く場合、このエラーが表示されます。このコンテキストでは名前 "VenderName"は許可されていません。有効な式は、定数、定数式、および(一部のコンテキストでは)変数です。列名は使用できません。 @Filburt –
あなたは 'VenderName、SUM(InvoiceTotal)'を選んではいけないのですか? 'Vendername'がどこから来るのか明確ではありません。 – Filburt