2016-07-13 1 views
0

J'ai une procédure stockée dans laquelle je ne veux pas utiliser la table qui est inward_doc_tracking_trl et ses alias associés.Supprimer une table et son alias de la procédure stockée

Voici le code:

ALTER PROCEDURE [dbo].[GET_INWARD_REMINDER_REPORT]  
AS  
BEGIN  
    Select distinct  
     U.first_name + ' ' + U.last_name UserName,  
     TH.User_ID, TH.doc_no, TH.U_datetime,  
     CASE  
      WHEN TL.U_datetime < DATEADD(d, -5, GETDATE())  
       THEN M.Reporting_To  
      ELSE NULL  
     END Reporting_1 ,  
     --U.Email AS UserEmail,  
     --senior.Email AS RA1_Email,  
     10000 AS UserEmail,  
     100001 AS RA1_Email,         
     DATEDIFF(DAY,TH.LastAction_DateTime,GETDATE()) - DATEDIFF(WK,TH.LastAction_DateTime,GETDATE())AS No_Of_Days_Opening  
    from 
     inward_doc_tracking_trl TL  
    inner join 
     inward_doc_tracking_hdr TH ON TH.mkey = TL.ref_mkey  
    inner join 
     user_mst U ON TH.User_Id = U.mkey  
    inner join 
     emp_mst M ON M.mkey = U.employee_mkey  
    outer apply 
     (select 
      uss.Email  
     from 
      emp_mst MS  
     inner join 
      user_mst uss ON uss.employee_mkey = MS.mkey  
     where 
      MS.mkey = M.Reporting_To) senior  
    where 
     TH.Status_flag NOT IN (5,14)  
     and TH.To_user IS NOT NULL 
END 

MISE À JOUR

SCRIPT de la table Inward_Doc_Tracking_Hdr

  CREATE TABLE [dbo].[Inward_Doc_Tracking_Hdr](
      [Mkey] [numeric](18, 0) NOT NULL, 
      [FModule_ID] [char](1) NOT NULL, 
      [Comp_Mkey] [numeric](4, 0) NOT NULL, 
      [Branch_Mkey] [numeric](4, 0) NOT NULL, 
      [Tran_Type] [varchar](6) NOT NULL, 
      [Tran_Code] [numeric](8, 0) NOT NULL, 
      [Tran_No] [numeric](4, 0) NOT NULL, 
      [Department_ID] [varchar](4) NOT NULL, 
      [User_Id] [numeric](10, 0) NULL, 
      [Doc_Type] [numeric](10, 0) NULL, 
      [Doc_No] [varchar](30) NULL, 
      [Doc_Date] [datetime] NOT NULL, 
      [Dispatch_By] [char](1) NOT NULL, 
      [Status_Flag] [numeric](8, 0) NOT NULL, 
      [FA_Year] [smallint] NOT NULL, 
      [Party_Mkey] [numeric](10, 0) NULL, 
      [To_Department] [numeric](10, 0) NULL, 
      [To_User] [numeric](10, 0) NULL, 
      [Inward_Amt] [numeric](18, 3) NULL, 
      [Ref_No] [varchar](40) NULL, 
      [Ref_date] [datetime] NULL, 
      [U_DateTime] [datetime] NOT NULL, 
      [LastAction_DateTime] [datetime] NULL, 
      [Remarks] [varchar](255) NULL, 
      [Delete_Flag] [char](1) NOT NULL, 
      [Outward_Type] [char](1) NULL, 
      [Doc_Department] [numeric](10, 0) NULL, 
      [Party_Name] [varchar](80) NULL, 
      [Delivered_By] [varchar](30) NULL, 
      [Doc_Description] [varchar](50) NULL, 
      [Last_Department] [numeric](10, 0) NULL, 
      [Last_User] [numeric](10, 0) NULL, 
      [Approved_Amount] [float] NULL, 
      [Chq_No] [varchar](50) NULL, 
      [Chq_dated] [datetime] NULL, 
      [Chq_Bank] [varchar](40) NULL, 
      [Chq_Amount] [float] NULL, 
      [Vendor_MKey] [int] NULL, 
      [Vendor_Comp_Mkey] [int] NULL, 
      [Project_Mkey] [numeric](10, 0) NULL, 
      [Program_mkey] [numeric](10, 0) NULL, 
      [Payment_MKey] [int] NULL, 
      [Due_Date] [datetime] NULL, 
      [Updated_Remarks] [varchar](500) NULL, 
      [Updated_Bill_no] [varchar](27) NULL, 
      [Updated_Bill_Date] [datetime] NULL, 
      [Updated_Bill_Amt] [float] NULL, 
      [TotalDeductions] [float] NULL, 
      [Broker_Mkey] [numeric](10, 0) NULL, 
      [Customer_Mkey] [numeric](10, 0) NULL, 
      [Payable_Amt] [float] NULL, 
      [Balance_Amt] [float] NULL, 
      [Req_Bill_Flag] [char](1) NULL, 
      [Po_No] [varchar](50) NULL, 
      [Receipt_No] [varchar](50) NULL, 
      [Bill_No] [varchar](50) NULL, 
      [Org_id] [varchar](10) NULL, 
      [Site_Id] [varchar](50) NULL, 
      [Site_Name] [varchar](150) NULL, 
      [Cumulative_Amt] [numeric](18, 2) NULL, 
      [Email_Id] [varchar](50) NULL, 
      [Emp_Id] [varchar](6) NULL, 
      [Disp_through] [varchar](50) NULL, 
      [Disp_Through_Name] [varchar](100) NULL, 
      [Last_To_User] [numeric](10, 0) NULL 
     ) ON [PRIMARY] 
+1

Qu'avez-vous essayé jusqu'à présent? Pourquoi êtes-vous incapable de supprimer la table et son alias? –

+0

@NaveedButt: J'ai déjà essayé, mais il me donnait une erreur comme ** Syntaxe incorrecte près du mot-clé 'INNER'. ** – BNN

+0

Donc, vous avez supprimé la table, mais pas l'instruction de jointure de la table? –

Répondre

2

supprimant toute référence à inward_doc_tracking_trl, voir commenté avec - ##

ALTER PROCEDURE [dbo].[GET_INWARD_REMINDER_REPORT]  
AS  
BEGIN  
    Select distinct  
     U.first_name + ' ' + U.last_name UserName,  
     TH.User_ID, TH.doc_no, TH.U_datetime,  
     CASE  
      --## changed TL.U_datetime to TH.U_datetime 
      WHEN TH.U_datetime < DATEADD(d, -5, GETDATE())  
       THEN M.Reporting_To  
      ELSE NULL  
     END Reporting_1 ,  
     --U.Email AS UserEmail,  
     --senior.Email AS RA1_Email,  
     10000 AS UserEmail,  
     100001 AS RA1_Email,         
     DATEDIFF(DAY,TH.LastAction_DateTime,GETDATE()) - DATEDIFF(WK,TH.LastAction_DateTime,GETDATE())AS No_Of_Days_Opening  
    --##from 
    --## inward_doc_tracking_trl TL  
    --##inner join 
    --## inward_doc_tracking_hdr TH ON TH.mkey = TL.ref_mkey  
    from inward_doc_tracking_hdr TH 
    inner join 
     user_mst U ON TH.User_Id = U.mkey  
    inner join 
     emp_mst M ON M.mkey = U.employee_mkey  
    outer apply 
     (select 
      uss.Email  
     from 
      emp_mst MS  
     inner join 
      user_mst uss ON uss.employee_mkey = MS.mkey  
     where 
      MS.mkey = M.Reporting_To) senior  
    where 
     TH.Status_flag NOT IN (5,14)  
     and TH.To_user IS NOT NULL 
END 
+0

Superbe, j'ai aimé ta façon d'expliquer avec des commentaires. +1 – BNN

0

Je pense qu'il suffit de supprimer ce code:

inward_doc_tracking_trl TL
jointure interne

et remplacer dans le cas TL avec TH

CAS
QUAND TH .U_datetime < DATEADD (d, -5, GETDATE())
ALORS M.Reporting_To
AUTRE NULL

quelque chose comme cela devrait être la procédure stockée:

ALTER PROCEDURE [dbo].[GET_INWARD_REMINDER_REPORT]  
AS  
BEGIN  
    Select distinct  
     U.first_name + ' ' + U.last_name UserName,  
     TH.User_ID, TH.doc_no, TH.U_datetime,  
     CASE  
      WHEN TH.U_datetime < DATEADD(d, -5, GETDATE())  
       THEN M.Reporting_To  
      ELSE NULL  
     END Reporting_1 ,  
     --U.Email AS UserEmail,  
     --senior.Email AS RA1_Email,  
     10000 AS UserEmail,  
     100001 AS RA1_Email,         
     DATEDIFF(DAY,TH.LastAction_DateTime,GETDATE()) - DATEDIFF(WK,TH.LastAction_DateTime,GETDATE())AS No_Of_Days_Opening  
    from 
     inward_doc_tracking_hdr TH  
    inner join 
     user_mst U ON TH.User_Id = U.mkey  
    inner join 
     emp_mst M ON M.mkey = U.employee_mkey  
    outer apply 
     (select 
      uss.Email  
     from 
      emp_mst MS  
     inner join 
      user_mst uss ON uss.employee_mkey = MS.mkey  
     where 
      MS.mkey = M.Reporting_To) senior  
    where 
     TH.Status_flag NOT IN (5,14)  
     and TH.To_user IS NOT NULL 
END