2016-08-16 6 views
0

ねえ、すべて私持って、私は作業を取得しようとしています次のクエリ:のSQL Server 2014は、JOIN

SELECT DISTINCT 
    APL.Status 
    ,APL.DateModified 
    ,APL.PID 
    ,APL.PType 
    ,APL.PName 
    ,APL.PostDate 
    ,APL.TID 
    ,APL.HRate 
    ,APL.Amount 
    ,APL.PContact 
    ,APL.PMail 
    ,APL.PPhone 
    ,APL.PFax 
    ,APL.RDate 
    ,PS.Comments 
FROM 
    [billing].[dbo].[x_APL] AS APL 
INNER JOIN 
    [billing].[dbo].[tblPS] AS PS ON APL.ProjectID = PS.ProjectID 
WHERE 
    APL.PID = '5879' 

私が手にエラーがある:

ntextのデータ型はできません比較できないためDISTINCTとして選択してください。

どうすれば解決できますか?INNER JOIN

+2

を書くことができます。あなたはおそらくnvarchar(4000)を使うことができます。それはたくさんの情報です。データがそこに収まらない場合は、nvarchar(max)を使用する必要があります。私は何の問題もなくddlを修正して多くのことを行ってきました。しかし、まずはテスト環境でこれを行う必要があります。 –

答えて

1

あなたのコメントはntextで、おそらくCAST関数を使ってデータ型をNVARCHARに変換します。

代わりの

PS.Comments 

あなたはあなたが今NVARCHARためにあなたのデータ型を変更することを検討すべきである

cast(PS.Comments as nvarchar(4000)) as [Comments] 
+0

それは仕事をしました。ありがとうダンスヘンリー。 – StealthRT

1

あなたは回避策として... ntext型、イメージ、テキストデータ型を比較す​​ることはできませんNVARCHARまたはVARCHARにすべてのそれらのデータ型をキャストしてみてください。..

例:

cast(textdatatye as varchar(10)) 

私は希望they will be removed in future version of SQLServer以降

ntext、text、およびimageデータ型は、将来のバージョンのSQL Serverでは削除される予定です。新しい開発作業でこれらのデータ型を使用しないようにし、現在使用しているアプリケーションを変更する計画を立ててください。代わりに、nvarchar(max)、varchar(max)、およびvarbinary(max)を使用してください。

+0

あなたは近くでしたが、Dance-Henryの例のように** as **が欠けていました。 – StealthRT