2017-02-08 4 views
1

私はQueryBuilderを使用しています。 VendTableに2つの等しいフィールドを持つすべてのレコードを選択したいとします。QueryBuilderの2つのフィールドを比較するには?

VendTable FROM

SELECT *(VendTable_1)WHERE((誕生日= {tsの「1900-:私はチエニル、クエリ値を参照してください

QueryBuildDataSource qbds; 
QueryRun  queryRun; 

qbds= queryRun.query().dataSourceTable(tableNum(VendTable)); 
qbds.addRange(fieldNum(VendTable, BirthDate)) 
.value(strFmt('%1 == %2',strFmt("%1.%2",qbds.name(), fieldStr(VendTable,BirthDate)) ,strFmt("%1.%2", qbds.name(),fieldStr(VendTable,FieldTransDate)))); 

デバッグで:

私のコードは、このlooklikeです01-01 00:00:00.000' }))

でもない仕事、私はこのクエリを作成したいと思います:

私は、クエリは上記のようにすることができますどのよう
select vendTable 
where vendTable.BirthDate== vendTable.FieldTransDate; 

SELECT VendTable * FROM(VendTable_1)((誕生日= FieldTransDate))

は、私は同じ表生年月日のフィールドを比較したい== FieldTransDate

QueryBuilderによる?

ありがとう、 enjoy!

答えて

1

query expressionには正しい構文を使用しないでください。括弧を忘れないでください:

qbds.addRange(fieldNum(VendTable, BirthDate)) 
    .value(strFmt('(%1 == %2)', 
        strFmt("%1.%2", qbds.name(), fieldStr(VendTable, BirthDate)), 
        strFmt("%1.%2", qbds.name(), fieldStr(VendTable, TransDate)))); 
+0

ありがとう、すべてうまくいきます。 – ulisses

関連する問題