2017-02-08 2 views
1

Ich verwende QueryBuilder. Ich möchte alle Datensatz in VendTable mit zwei gleichen Feldern auswählen.Wie zwei Felder in QueryBuilder zu vergleichen?

Mein Code ist looklike dies:

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)))); 

Auf Debug I thie Abfrage Wert sehen:

SELECT * FROM VendTable (VendTable_1) WHERE ((= {Birth ts ‚1900- 01-01 00: 00: 00.000' }))

Aber nicht funktioniert, würde ich diese Abfrage erstellen möchten:

select vendTable 
where vendTable.BirthDate== vendTable.FieldTransDate; 

SELECT * FROM VendTable (VendTable_1) WHERE ((Birth = FieldTransDate))

ich die Felder auf der gleichen Tabelle Birth == FieldTransDate

Wie ich die Abfrage oben machen können vergleichen wollen gezeigt von QueryBuilder?

Danke, viel Spaß!

Antwort

1

Sie verwenden nicht die korrekte Syntax für eine query expression. Merken Sie sich die Klammern:

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

Vielen Dank, alles gut. – ulisses

Verwandte Themen