首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2012-09-07 
存储过程运行成功,但调用时提示列明无效!IF EXISTS (SELECT 1 FROM dbo.sysobjects WHERE ID OBJECT_ID(

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

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' 无效嘛.
查一下有没有这列.
[解决办法]
临时表里面已经有这个列了可以看到,你检查一下你那个实体表

热点排行