2013-06-18 8 views
-4
  `DECLARE @MYACCOUNT CHAR(2), 
     @REPORTTYPE CHAR(1), 
     @BRANCHCODE CHAR(3) 


     SELECT @MYACCOUNT='SV', 
     @REPORTTYPE='D', 
     @BRANCHCODE='001' 

     IF NOT EXISTS(SELECT 1 FROM TBL_Category WHERE [email protected]) 
     SELECT 'INVALID ACCOUNT NAME IS : '[email protected] 

     ELSE IF NOT EXISTS(SELECT 1 FROM TBL_Category WHERE [email protected]) 
     SELECT 'INVALID REPORT NAME IS : '[email protected] 

     ELSE IF NOT EXISTS(SELECT 1 FROM BranchMaster WHERE [email protected]) 
     SELECT 'INVALID BRANCH CODE IS : '[email protected] 

     ELSE 
      SELECT M.MBranchCode, SUM(M.MMiscBaln) FROM MasterTable M, TBL_Category T 
      WHERE T.CategoryCode=M.MAcType 
      AND [email protected] 
      AND [email protected] 
      AND [email protected] 
      GROUP BY M.MBranchCode` 

Я хочу решение, которое при вводе неправильных данных в переменные затем должно выдать сообщение об ошибке. Может быть более одной ошибки, но должна отображаться ошибка этих переменных. Например:Объявление переменной

Если я вошел значение:

   `@BRANCHCODE='002' 
       @REPORTTYPE='A' 
       @MYACCOUNT='SQ'` 

@BRANCHCODE правильно. Затем он должен выдать сообщение о том, что @REPORTTYPE и @MYACCOUNT являются ошибкой.

+3

Отключите блокировку крышек, что невероятно трудно читать. – Blorgbeard

+0

спасибо. теперь вы ответите на мой вопрос? –

+0

[Плохие привычки пинать: использование JOIN в старом стиле] (http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins. aspx) - стиль старого стиля * разделенный запятыми список таблиц * был отменен с помощью ANSI - ** 92 ** SQL Standard (более ** 20 лет ** назад) –

ответ

2

Соберите свои сообщения об ошибках, если вы не получите ни одного результата возврата вашего запроса, иначе верните или поднимите собранные ошибки.

Declare @a Table (a int,b int,c int) 

insert into @a Values(1,2,3),(4,4,4) 

Declare @va int=2 
Declare @vb int=2 
Declare @vc int=2 

Declare @error Varchar(100)='' 
if not exists(select * from @a where [email protected]) 
    Select @[email protected] + 'Invalid va ' + Cast(@va as Varchar(10)) + Char(13)+Char(10) 
if not exists(select * from @a where [email protected]) 
    Select @[email protected] + 'Invalid vb ' + Cast(@vb as Varchar(10)) + Char(13)+Char(10) 
if not exists(select * from @a where [email protected]) 
    Select @[email protected] + 'Invalid vc ' + Cast(@vc as Varchar(10)) + Char(13)+Char(10) 
if len(@Error)>0 select @Error 
else 
    Select * from @a where [email protected] and [email protected] and [email protected] 
Смежные вопросы