Member 12770648 Ответов: 1

Команда(ы) выполнена успешно. Однако многосоставный идентификатор не может быть найден


ALTER PROCEDURE [dbo].[rpt_Inc_Xtat]
 (
   @CINCIDENT VARCHAR(50),
   @CDDL1     VARCHAR(50),
   @CDDL2     VARCHAR(50),
   @CDCOMPT   VARCHAR(50),
   @CFROM     DATETIME   ,
   @CTO       DATETIME 
)
AS
  BEGIN
        DECLARE @sql nvarchar(4000)
       SELECT  A.BRN_NAME,A.COMP_NO, A.COMP_CODE, A.COMPLAINANT, A.PTICK_CODE, 
                  SUM(CASE WHEN DATEADD(DD,P.PROD_SERV_TAT, A.COMP_DATE) < COALESCE(A.DAT_COMP_INV_CLOSE0,A.DAT_COMP_INV_CLOSE,A.DATE_COMP_CLOS_FRMT)THEN 1 ELSE 0 END) AS ACCEPT_TAT,
				   COUNT(*) AS OVER_CNT ,
				  (SELECT COUNT(*) FROM RESPONSE A , BB    WHERE A.BRN_NAME=BB.BRN_NAME) AS GRP_CNT,
				    P.PROD_SERV_TAT
                    FROM RESPONSE A , BB
                    LEFT  JOIN BRANCH    C   ON A.BRN_NAME   = C.BRN_NAME
                    LEFT  JOIN PROD_SERV P   ON A.PROD_SERV  = P.PROD_SERV_NAME
                    LEFT  JOIN PAYMAST   B   ON A.LNAME      = B.LNAME
                                         AND  A.FNAME        = B.FNAME
                                         AND  A.EMPNO        = B.EMPNO 
                    WHERE (A.COMP_DATE BETWEEN @CFROM AND @CTO) 
                    GROUP BY  A.BRN_NAME,A.COMP_NO, A.COMP_CODE,A.COMPLAINANT, A.PTICK_CODE, P.PROD_SERV_TAT 

			
  END


Ошибки

1. недопустимое имя объекта "BB"

(SELECT COUNT(*) FROM RESPONSE A , BB    WHERE A.BRN_NAME=BB.BRN_NAME) AS
  GRP_CNT,


2.
LEFT  JOIN BRANCH    C   ON A.BRN_NAME   = C.BRN_NAME
                    LEFT  JOIN PROD_SERV P   ON A.PROD_SERV  = P.PROD_SERV_NAME
                    LEFT  JOIN PAYMAST   B   ON A.LNAME      = B.LNAME
                                         AND    A.FNAME        = B.FNAME
                                         AND    A.EMPNO        = B.EMPNO 



Не удалось найти многозначный идентификатор "A. PROD_SERV"
Многосоставный идентификатор "A. LNAME" не удалось найти
Многосоставный идентификатор "A. FNAME" не удалось найти
Не удалось найти многозначный идентификатор "A. PROD_SERV"

Что я уже пробовал:

Есть аналогичные коды, которые работают.

Что я здесь делаю, так это ввел подзапрос, чтобы рассчитывать на группу .

Rajesh Pandya

"BB" - это название вашего стола? Если да, то эта таблица не существует в базе данных, и из-за этого она выдает ошибку "недопустимое имя объекта 'BB'".
Если вы дали псевдоним как "BB", то вам нужно указать имя таблицы, а затем имя псевдонима.

1 Ответов

Рейтинг:
0

phil.o

(SELECT COUNT(*) FROM RESPONSE A , BB /* */),
-- ...
FROM RESPONSE A , BB

Второй BB псевдоним не связан ни с одной таблицей. Он не нужен нигде, кроме как в подзапросе, чтобы рассчитывать на группу, так зачем же включать его в запрос верхнего уровня?