SQL'作为'语句问题

时间:2017-09-19 02:04:12

标签: sql sql-server

我在使用SQL'as'语句时遇到了困难。根据我在YouTube上阅读和看到的内容,可以使用'as'或alias命令重命名列。

错误:

  

System.Exception:无效的对象名称'Capprogram'
  选择main1.id为captempCaseMgmtMain_id,CapSSMatrix.Name为captempCaseMgmtMain_idSSMatrix,CapSSMatrix.datefrom为Date,CapSSMatrix.dateto为DateTo,Person.lastname +','+ Person.firstname为Name,main1.date为captempCaseMgmtMain_id,Capprogram.program为captempCaseMgmtMain_idProgram来自captempCaseMgmtMain main1左连接captempCaseMgmtMain main2 on main2.ssmgroup = main1.ssmgroup和main2.type = 3 JOIN CapSSMatrix on main1.idSSMatrix = CapSSMatrix.id JOIN Person on person.id = main1.familymember JOIN Capprogram on capprogram.id = main1。 idprogram,其中main1.type = 1且isnumeric(main2.id)<> 1和((getdate()> capSSMatrix.dateto))和CapSSMatrix.id =''由main1.id desc命令在IMSE.UI.BaseEnginePage.GetDBValues()at IMSE.UI.Pages.Aspx_Pages.LoadPage()at IMSE.UI.Pages.Aspx_Pages.Page_Load(Object sender,EventArgs e)

这是我尝试过的命令/查询。任何帮助表示赞赏。提前谢谢。

IClientValidatable

4 个答案:

答案 0 :(得分:1)

此错误表明没有名为Capprogram的对象,我只在join子句中看到它被引用。我确认该表存在,如果存在,则使用完全限定名称。

答案 1 :(得分:0)

您的表似乎不在架构中。通过以下查询找到您的表模式名称。

select *
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME='tableName'

然后尝试放入schemaname.tablename

还要确保您正在使用的数据库中存在该表

答案 2 :(得分:0)

此代码产生以下错误:

  

消息126,级别15,状态1,行24无效的伪列   " $ CapSSMatrix"

这是因为您的$CapSSMatrix.id包含$,服务器认为它是伪列,但事实并非如此。

因此,如果它是一个表名,则应该引用它:[$CapSSMatrix],如果它不是只删除此$

答案 3 :(得分:-3)

您必须将LEFT JOIN添加到表中,例如:

1- left join captempCaseMgmtMain main2
2- left join CapSSMatrix
3- left join Person
4- left join Capprogram