1

この基本的な相談はSQLですが、管理スタジオでこのエラーが発生しています:

SELECT * 
FROM [Oficios_dev2].[dbo].[doc].[typecdocumentdet] as [C] 
where [C].[TypeCDocument] in (select [Oficios_dev2].[dbo].[doc].[TypeCDocument] as [D] 
                              where [D].[Id] = '1')

エラー

Msg 4104, Level 16, State 1, Line 3
The multi-part identifier "D.Id" could not be bound.
Msg 4104, Level 16, State 1, Line 3
The multi-part identifier "Oficios_dev2.dbo.doc.TypeCDocument" could not be bound.

理由がわかりません、誰か?ありがとう

編集: 新しいクエリ:

SELECT *
FROM [Oficios_dev2].[dbo].[doc] as [C] where [C].[TypeCDocument]  in (select [Oficios_dev2].[dbo].[doc] from [Oficios_dev2].[dbo].[doc] as [D] where [D].[Id] = '1')

これにより、エラーが少なくなります 1

The multi-part identifier "Oficios_dev2.dbo.doc" could not be bound.
4

2 に答える 2

4

内部クエリが正しくフォーマットされていません:

あなたが持っている:

(select [Oficios_dev2].[dbo].[doc].[TypeCDocument] as [D] where [D].[Id] = '1')

次のようにする必要があります。

(select TypeCDocument FROM [Oficios_dev2].[dbo].[doc] as [D] where [D].[Id] = '1')
于 2013-08-14T16:46:51.230 に答える
1

使用している内部クエリをテストする必要があります。完全なクエリとは独立して実行できる必要があります。この例では、内部クエリに正しい ` 構文がありません。

SELECT * 
FROM [Oficios_dev2].[dbo].[typecdocumentdet] as [C] 
where [C].[TypeCDocument] in (select [TypeCDocument]
                              from [Oficios_dev2].[dbo].[doc] as [D] 
                              where [D].[Id] = '1')

注:[doc]は、内部クエリを実行するテーブルの名前であり、式リスト[TypeCDocument]で使用するために選択する列であると想定しています。IN

于 2013-08-14T16:59:32.247 に答える