2009-08-26 7 views
0

インナーはそれがテーブル間以上の分野で関係を持って参加して選択を行うことが正確なインナーフィールドよりもで参加

Exemple:

DataSet dt = new Select().From(SubConta.Schema) 
     .InnerJoin(PlanoContabilSubConta.EmpSubContaColumn, SubConta.CodEmpColumn) 
     .InnerJoin(PlanoContabilSubConta.FilSubContaColumn, SubConta.CodFilColumn) 
     .InnerJoin(PlanoContabilSubConta.SubContaColumn, SubConta.TradutorColumn) 
     .Where(PlanoContabilSubConta.Columns.EmpContabil).IsEqualTo(cEmp) 
     .And(PlanoContabilSubConta.Columns.FilContabil).IsEqualTo(cFil) 
     .And(PlanoContabilSubConta.Columns.Conta).IsEqualTo(cTrad) 
     .ExecuteDataSet(); 

しかし、生成されたSQLが間違っている:

exec sp_executesql N'/* GetDataSet() */ SELECT [dbo].[SubContas].[CodEmp], [dbo].[SubContas].[CodFil], [dbo].[SubContas].[Tradutor], [dbo].[SubContas].[Descricao], [dbo].[SubContas].[Inativa], [dbo].[SubContas].[DataImplantacao] 

FROM [dbo].[SubContas] 
INNER JOIN [dbo].[PlanoContabilSubContas] ON [dbo].[SubContas].[CodEmp] = [dbo].[PlanoContabilSubContas].[EmpSubConta] 
INNER JOIN [dbo].[PlanoContabilSubContas] ON [dbo].[SubContas].[CodFil] = [dbo].[PlanoContabilSubContas].[FilSubConta] 
INNER JOIN [dbo].[PlanoContabilSubContas] ON [dbo].[SubContas].[Tradutor] = [dbo].[PlanoContabilSubContas].[SubConta] 
WHERE EmpContabil = @EmpContabil0 
AND FilContabil = @FilContabil1 
AND Conta = @Conta2 
',N'@EmpContabil0 varchar(1),@FilContabil1 varchar(1),@Conta2 varchar(1)',@EmpContabil0='1',@FilContabil1='1',@Conta2='1' 

このSQLを生成するにはどうすればよいですか?

exec sp_executesql N'/* GetDataSet() */ SELECT [dbo].[SubContas].[CodEmp], [dbo].[SubContas].[CodFil], [dbo].[SubContas].[Tradutor], [dbo].[SubContas].[Descricao], [dbo].[SubContas].[Inativa], [dbo].[SubContas].[DataImplantacao] 

    FROM [dbo].[SubContas] 
    INNER JOIN [dbo].[PlanoContabilSubContas] ON [dbo].[SubContas].[CodEmp] = [dbo].[PlanoContabilSubContas].[EmpSubConta] AND 
    [dbo].[SubContas].[CodFil] = [dbo].[PlanoContabilSubContas].[FilSubConta] AND 
    [dbo].[SubContas].[Tradutor] = [dbo].[PlanoContabilSubContas].[SubConta] 
    WHERE EmpContabil = @EmpContabil0 
    AND FilContabil = @FilContabil1 
    AND Conta = @Conta2 
    ',N'@EmpContabil0 varchar(1),@FilContabil1 varchar(1),@Conta2 varchar(1)',@EmpContabil0='1',@FilContabil1='1',@Conta2='1' 

答えて

0

あなたは亜音速の2に複数の列に参加できないように、あなたはちょうどあなたがそれをしたいと合流するSQLビューを作成し、そのビューのモデルを生成する亜音速得ることができる見えます。

関連する問題