2016-07-23 13 views
0

こんにちは、私はSPでピボットを使用していますが、私はこのは、このストアドプロシージャ

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 

を実行することができないで、エラー何のエラーが表示さ私はそれが実行CASE文を削除

Msg 208, Level 16, State 6, Procedure Ascend_sp_rpt_CashierTransactionAmt, Line 14 
Invalid object name 'dbo.Ascend_sp_rpt_CashierTransactionAmt'. 

としてなぜか分かりません。

+3

クエリが正しいです。 spのすべてのコードを表示 – NEER

+3

あなたはこのspを変更しようとしています - 以前に作成したことがありますか? spの 'END'の後に' exec'の例がありますか? spコードとこのspを使用するコードの間に 'GO 'を置きます。 –

答えて

2

ストアドプロシージャAscend_sp_rpt_CashierTransactionAmt

  1. は、実行されているデータベースのコンテキストに存在しません。正しいデータベースを指していることを確認してください。
  2. dboの場合、最初にdboを使用せずに、dboのデフォルトスキーマを持つユーザーで保存したprocがスキーマに存在しない場合、そのスキーマで作成されます。よりおよそスキーマがSQL Server Best Practices – Implementation of Database Object Schemas

を参照してくださいALTERあなたはそれがすでに文が失敗する何らかの理由で存在しないかのように、既存のストアドプロシージャを変更しようとしていることを意味します。まだ存在しない場合は、ALTERキーワードをCREATEに置き換えてください。

最後に、キーワードGOを使用してcreation/alter文を終了します。構文の例については、Create a Stored Procedureを参照してください。

関連する問題