加入sql的问题 [英] problem in joining in sql

查看:89
本文介绍了加入sql的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

hello frnds我在加入时遇到问题...

hello frnds i have a problem in joining ...

alter PROCEDURE [dbo].[sp_GatherCenterInfoForSpecialpaymentsTypes]      
(      
    @company_u_id int,      
    @UnitId int      
)      
AS      
BEGIN      
    SET NOCOUNT ON;  
 
    SELECT t1.Center_Name, t1.Center_Code, t1.Center_Id,t1.Center_Id_Format  
    FROM DayOpenDayCloseInfo 
    INNER JOIN (  
        (SELECT CenterInfo.Center_Name, CenterInfo.Center_Code, 
         CenterInfo.Center_Id,CenterInfo.Center_Id_Format, 
         MAX(DayOpenDayCloseInfo.DayOPenCloseId)     
         FROM CenterInfo 
         INNER JOIN DayOpenDayCloseInfo
         ON CenterInfo.Center_Id = DayOpenDayCloseInfo.Center_Id   
         WHERE (CenterInfo.Unit_Id = @UnitId) AND (CenterInfo.IsActive = 1) 
             AND (CenterInfo.company_u_id=@company_u_id)
         GROUP BY CenterInfo.Center_Name, CenterInfo.Center_Code, 
             CenterInfo.Center_Id,CenterInfo.Center_Id_Format)
    ) t1
    ON t1.Center_Id = DayOpenDayCloseInfo.Center_Id
    WHERE DayOpenDayCloseInfo.IsActive = 0
END
RETURN



当执行错误时...


when it give error on execute that ...

"Msg 8155, Level 16, State 2, Procedure sp_GatherCenterInfoForSpecialpaymentsTypes, Line 21
No column name was specified for column 5 of 't1'."



i无法理解问题是什么../



这是我加入一个ta的结果集......你在这里看到..



请翻看..提前预订


i am unable to understand what the problem is ../

in this i am joining a result set with an table .... as u see here ..

pls rply ..Thnks in advance

推荐答案

您好,



您是否尝试重写过程,如下所示。

Hello,

Have you tried rewriting your proc as shown below.
ALTER PROCEDURE [dbo].[sp_GatherCenterInfoForSpecialpaymentsTypes]      
(      
    @company_u_id int,      
    @UnitId int      
)      
AS      
BEGIN      
    SET NOCOUNT ON;  
 
    SELECT t1.Center_Name, t1.Center_Code, t1.Center_Id, t1.Center_Id_Format  
    FROM DayOpenDayCloseInfo 
    INNER JOIN (  
        (SELECT CenterInfo.Center_Name, CenterInfo.Center_Code, 
         CenterInfo.Center_Id,CenterInfo.Center_Id_Format, 
         MAX(DayOpenDayCloseInfo.DayOPenCloseId) AS DayOPenCloseId
         FROM CenterInfo 
         INNER JOIN DayOpenDayCloseInfo
         ON CenterInfo.Center_Id = DayOpenDayCloseInfo.Center_Id   
         WHERE (CenterInfo.Unit_Id = @UnitId) AND (CenterInfo.IsActive = 1) 
             AND (CenterInfo.company_u_id=@company_u_id)
         GROUP BY CenterInfo.Center_Name, CenterInfo.Center_Code, 
             CenterInfo.Center_Id, CenterInfo.Center_Id_Format)
    ) t1
    ON t1.Center_Id = DayOpenDayCloseInfo.Center_Id
    WHERE DayOpenDayCloseInfo.IsActive = 0
END
RETURN



问候,


Regards,


要做到这一点,查询非常混乱.. 。



但是尝试在子查询中为MAX(DayOpenDayCloseInfo.DayOPenCloseId)提供一个别名,这应该有助于

类似于:MAX(DayOpenDayCloseInfo。 DayOPenCloseId)as MaxOpenDay
To be hones the query is pretty messy...

But try providing an alias to MAX(DayOpenDayCloseInfo.DayOPenCloseId) in your subquery that should help
something like : MAX(DayOpenDayCloseInfo.DayOPenCloseId) as MaxOpenDay

为MAX(DayOpenDayCloseInfo.DayOPenCloseId)列添加列名别名
Put a column name alias for your column of 'MAX(DayOpenDayCloseInfo.DayOPenCloseId)'


这篇关于加入sql的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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