读书人

存储过程运作成功但调用时提示列明无

发布时间: 2012-09-07 10:38:15 作者: rapoo

存储过程运行成功,但调用时提示列明无效!

IF EXISTS (SELECT 1 FROM dbo.sysobjects WHERE ID = OBJECT_ID(N'[dbo].[zl_RptNotInvoiceSum3]') AND OBJECTPROPERTY(ID, N'IsProcedure') = 1)
DROP PROCEDURE [dbo].[zl_RptNotInvoiceSum3]
GO
CREATE PROCEDURE zl_RptNotInvoiceSum3
@CustID VARCHAR(50)='',----客户编号
@SODeliveryDateFrom VARCHAR(50),---送货日期从
@SODeliverDateTo VARCHAR(50),---送货日期到
--@SOInvoiceDate VARCHAR(50),--发票截止日期
@SalesMan VARCHAR(50)=''--业务员
WITH ENCRYPTION
AS
BEGIN
SET @CustID = RTRIM(LTRIM(ISNULL(@CustID,'')))
SET @SODeliveryDateFrom = RTRIM(LTRIM(ISNULL(@SODeliveryDateFrom ,'')))
SET @SODeliverDateTo = RTRIM(LTRIM(ISNULL(@SODeliverDateTo,'')))
SET @SalesMan = RTRIM(LTRIM(ISNULL(@SalesMan,'')))
CREATE TABLE #NotSOInvoiceSumAmount(
InvoiceNote VARCHAR(50),
CustID VARCHAR(50),
CustName VARCHAR(200),
InvoiceQty REAL,
SumInvoiceQty REAL,
--TotalArea FLOAT,--总面积
--TotalM2PerPiece REAL,--总金额
--TotalWeight REAL,
--TotalAmount REAL,
InvoiceDate VARCHAR(50),
AcceptDate VARCHAR(50),
-- ActualDelDate VARCHAR(50),
SOCategory VARCHAR(50),--产品种类
InvoiceAmountWithTax REAL,--含税金额
SumInvoiceAmountWithTax REAL,--总含税金额
InvoiceAmountWithoutTax REAL,--不含税金额
SumInvoiceAmountWithoutTax REAL,--总不含税金额
--TotalSingleActualAreaDECIMAL(18,3),--单芯总面积
--TotalDoubleActualAreaDECIMAL(18,3),---双芯总面积
Salesman VARCHAR(50)
)


PRINT CONVERT (VARCHAR(50),GETDATE(),20)+'A'
INSERT INTO #NotSOInvoiceSumAmount(

InvoiceNote,
CustID,
CustName,
InvoiceQty,
InvoiceDate,
AcceptDate,
-- ActualDelDate ,
SOCategory,
InvoiceAmountWithTax ,
InvoiceAmountWithoutTax,
Salesman

)

select


A.InvoiceNote,
A.CustID,
A.CustName ,
A.InvoiceQty,
A.InvoiceDate,
A.AcceptDate,
--B.ActualDelDate,
A.SOCategory,
A.InvoiceAmountWithTax,
A.InvoiceAmountWithoutTax,
A.Salesman


FROM VSOInvoiceItem A WITH(NOLOCK)

where

((A.InvoiceNote='') OR(ISNULL(A.InvoiceNote,'')='不开发票'))
AND ((@CustID='') OR (A.CustID=@CustID))
AND ((@Salesman='') OR (A.Salesman=@Salesman))
AND ((@SODeliveryDateFrom='')OR(A.AcceptDate>=@SODeliveryDateFrom))
AND ((@SODeliverDateTo='')OR(A.AcceptDate<=@SODeliverDateTo))

update #NotSOInvoiceSumAmount

set
SumInvoiceQty=InvoiceQty
from
(
select

SUM(A.InvoiceQty)AS SumInvoiceQty

from
VSOInvoiceItem A WITH(NOLOCK)


where

A.CustID<>'set'
-- ((A.InvoiceNote='') OR(ISNULL(A.InvoiceNote,'')='不开发票'))
-- AND((@CustID='') OR (A.CustID=@CustID))
)BB
where #NotSOInvoiceSumAmount.InvoiceNote=BB.InvoiceNote
-----------------------------------------------------------

UPDATE #NotSOInvoiceSumAmount

set
SumInvoiceAmountWithTax=InvoiceAmountWithTax
from
(
select
SUM(A.InvoiceAmountWithTax)AS SumInvoiceAmountWithTax
from
VSOInvoiceItem A WITH(NOLOCK)

where


A.CustID<>'set'
-- ((A.InvoiceNote='') OR(ISNULL(A.InvoiceNote,'')='不开发票'))
-- AND((@CustID='') OR (A.CustID=@CustID))
)BB
where #NotSOInvoiceSumAmount.InvoiceNote=BB.InvoiceNote



SELECT * FROM zl_RptNotInvoiceSum3

ORDER BY
CustID,
SOCategory

END
-- select A.InvoiceNote ,A.CustID ,A.CustName ,A.AcceptDate from vsoinvoiceitem A
-- WHERE InvoiceNote='' or InvoiceNote='不开发票' and AcceptDate>='2012-04-01'

执行时成功的,但是在调用EXEC zl_RptNotInvoiceSum3 '','','',''
提示:服务器: 消息 207,级别 16,状态 3,过程 zl_RptNotInvoiceSum3,行 81
列名 'InvoiceNote' 无效。
服务器: 消息 207,级别 16,状态 1,过程 zl_RptNotInvoiceSum3,行 102
列名 'InvoiceNote' 无效。
各位高手给指点一下!!!

[解决办法]
重点检查下这里

SQL code
where #NotSOInvoiceSumAmount.InvoiceNote=BB.InvoiceNote
[解决办法]
提示很明显啊
[解决办法]
列名 'InvoiceNote' 无效嘛.
查一下有没有这列.
[解决办法]
临时表里面已经有这个列了可以看到,你检查一下你那个实体表

读书人网 >SQL Server

热点推荐