您好我在SP中使用Pivot但我无法执行此
GO
/****** Object: StoredProcedure [dbo].[Ascend_sp_rpt_CashierTransactionAmt] Script Date: 07/23/2016 12:00:51 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Venkat>
-- Create date: <Create Date,23-07-2016,>
-- Description: <Description,Cashier Transaction Amount Reports ,>
-- =============================================
ALTER PROCEDURE [dbo].[Ascend_sp_rpt_CashierTransactionAmt]
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT * FROM(
SELECT
b.Sale_Rate,b.Type,b.Type_Code,CASE
WHEN 1=0 then convert(char(19),b.LogTime,20)
ELSE convert(char(10),b.LogTime,20)
END 'LogDate' from tbllog b)a
PIVOT
(
Sum(Sale_Rate)
FOR Type IN ([S], [D], [C])
) AS P
END
错误显示为
Msg 208, Level 16, State 6, Procedure Ascend_sp_rpt_CashierTransactionAmt, Line 14
Invalid object name 'dbo.Ascend_sp_rpt_CashierTransactionAmt'.
当我删除它执行的CASE语句时。不知道为什么。
答案 0 :(得分:2)
存储过程Ascend_sp_rpt_CashierTransactionAmt
dbo
下存储的proc不存在,如果您最初在没有dbo
的情况下创建了它,并且用户具有非dbo
默认模式,那么它将在那个架构。有关架构的更多信息,请参阅SQL Server Best Practices – Implementation of Database Object Schemas ALTER
表示您正在尝试修改现有存储过程,因此如果该语句因任何原因而不存在,则该语句将失败。如果它尚不存在,请将ALTER
关键字替换为CREATE
。
最后使用关键字GO结束您的creation / alter语句。有关其他语法示例,请参阅Create a Stored Procedure。