2017-09-19 15 views
0

SQL 'as'ステートメントに問題があります。私が読んだことやYouTubeで見たことに基づいて、 'as'やaliasコマンドを使って列の名前を変更することができます。SQL 'as'ステートメントの問題

エラー:

System.Exception: Invalid object name 'Capprogram'
select main1.id as captempCaseMgmtMain_id , CapSSMatrix.Name as captempCaseMgmtMain_idSSMatrix , CapSSMatrix.datefrom as Date , CapSSMatrix.dateto as DateTo , Person.lastname +' , '+Person.firstname as Name , main1.date as captempCaseMgmtMain_id , Capprogram.program as captempCaseMgmtMain_idProgram from captempCaseMgmtMain main1 left join captempCaseMgmtMain main2 on main2.ssmgroup = main1.ssmgroup and main2.type = 3 JOIN CapSSMatrix on main1.idSSMatrix = CapSSMatrix.id JOIN Person on Person.id = main1.familymember JOIN Capprogram on capprogram.id = main1.idprogram where main1.type = 1 and isnumeric(main2.id)<> 1 and ((getdate() > capSSMatrix.dateto)) and CapSSMatrix.id = '' order by main1.id desc at IMSE.UI.BaseEnginePage.GetDBValues() at IMSE.UI.Pages.Aspx_Pages.LoadPage() at IMSE.UI.Pages.Aspx_Pages.Page_Load(Object sender, EventArgs e)

これは私が試したコマンド/クエリです。どんな助けもありがとうございます。前もって感謝します。

SELECT 
    main1.id AS captempCaseMgmtMain_id, 
    CapSSMatrix.Name AS captempCaseMgmtMain_idSSMatrix, 
    CapSSMatrix.datefrom AS Date, 
    CapSSMatrix.dateto AS DateTo, 
    Person.lastname + ', ' + Person.firstname AS Name, 
    main1.date AS captempCaseMgmtMain_id, 
    Capprogram.program AS captempCaseMgmtMain_idProgram 
FROM 
    captempCaseMgmtMain main1 
LEFT JOIN 
    captempCaseMgmtMain main2 ON main2.ssmgroup = main1.ssmgroup 
           AND main2.type = 3 
JOIN 
    CapSSMatrix ON main1.idSSMatrix = CapSSMatrix.id 
JOIN 
    Person ON Person.id = main1.familymember 
JOIN 
    Capprogram ON capprogram.id = main1.idprogram 
WHERE 
    main1.type = 1 AND 
    ISNUMERIC(main2.id) <> 1 AND 
    (GETDATE() > capSSMatrix.dateto) AND 
    CapSSMatrix.id = $CapSSMatrix.id 
ORDER BY 
    main1.id DESC 
+2

を削除していない場合、私は、これはエイリアシングとは何を持っている疑い。これはあなたが 'Capprogram'と呼ばれるテーブルやビューを持っていないからだと思います。たぶんそれは1つだけpを持っています。 –

+1

クエリが別のスキーマにあり、次にテーブルが存在する場合は、スキーマ名でクエリを修飾する必要があります。常にスキーマ名で修飾するのがよい方法です。 – CodingYoshi

答えて

1

このエラーは、私があなたのjoin節で参照しているだけのCapprogramという名前のオブジェクトがないことを示しています。私はこのテーブルが存在することを確認し、存在する場合は完全修飾名を使用します。あなたはLEFTは、例えば、テーブルにJOINを追加する必要が

-3

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

あなたの表がスキーマに存在しないようです。以下のクエリでテーブルのスキーマ名を探します。

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

そして、また、そのテーブルは、このコードは、次のエラーが発生しますが

0

を使用しているデータベースに存在していることを確認してくださいSCHEMANAME.TABLENAME

を配置しよう:

Msg 126, Level 15, State 1, Line 24 Invalid pseudocolumn "$CapSSMatrix".

このあなたの$CapSSMatrix.idには$が含まれており、サーバーはそれが疑似列だと思っているからですが、そうではありません。それは、テーブル名かどう

だから、それは次のように引用符で囲む必要があります:[$CapSSMatrix]、それはちょうどこの$

+0

あなたは質問をしてから、コメントでそれを行います。これは答えではありません。 – CodingYoshi

関連する問題