命令已成功完成。但是,找不到多部分标识符 [英] Command(s) completed successfully. However the multi-part identifier cannot be found

查看:55
本文介绍了命令已成功完成。但是,找不到多部分标识符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 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(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响应A,BB在哪里A.BRN_NAME = BB.BRN_NAME)AS GRP_CNT,
P.PROD_SERV_TAT
来自响应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 @WFROM和@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,

< br $>


2.

左边加入分行C在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



我尝试过:



有类似的代码可以使用。



这里做的是我在GROUP上向COUNT引入了一个子查询。 div class =h2_lin>解决方案

 SELECT  COUNT(*) FROM 响应A,BB  / *   * / ),
- ...
FROM 回复A ,BB



第二个 BB 别名与任何表格无关。除了在子查询中以外的任何地方都不需要依赖组,那么为什么要将它包含在顶级查询中呢?


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



Errors

1. Invalid object name '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 




The multi part-identifier "A.PROD_SERV" could not be found
The multi part-identifier "A.LNAME" could not be found
The multi part-identifier "A.FNAME" could not be found
The multi part-identifier "A.PROD_SERV" could not be found

What I have tried:

Have a similar codes which works.

What am doing here is I have introduced a subquery to COUNT on GROUP .

解决方案

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


The second BB alias is not related to any table. It is not needed anywhere else than in the subquery to count on group, so why including it in the top-level query?


这篇关于命令已成功完成。但是,找不到多部分标识符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆