「Queryでテーブル結合(Join)を行うには?」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
Queryでテーブル結合(Join)を行うには、
joinMode の設定をします。
> Query query = new Query();
> QueryBuildDataSource queryBuildDSSalesTable;
> QueryBuildDataSource queryBuildDSSalesLine;
> QueryBuildRange queryBuildRange;
> QueryRun queryRun;
> SalesLine salesLine;
> SalesTable salesTable;
> ;
>
> // Setup the primary datasource.
> queryBuildDSSalesTable = query.addDataSource(tablenum(SalesTable));
> queryBuildDSSalesTable.addRange(fieldnum(SalesTable,SalesId)).value('00001_036');
>
> // Setup the secondary (joined) datasource.
> queryBuildDSSalesLine = queryBuildDSSalesTable.addDataSource(tablenum(SalesLine));
> queryBuildDSSalesLine.joinMode(JoinMode::InnerJoin);
> queryBuildDSSalesLine.relations(true);
> queryRun = new QueryRun(query);
> while(queryRun.next())
> {
> salesTable = queryRun.get(tablenum(SalesTable));
> salesLine = queryRun.get(tablenum(SalesLine));
> info(strfmt('%1 %2', salesTable.SalesId, salesLine.Name));
> }
参考:
http://dynamicsuser.net/forums/p/38436/197643.aspx
Queryでテーブル結合(Join)を行うには、
joinMode の設定をします。
> Query query = new Query();
> QueryBuildDataSource queryBuildDSSalesTable;
> QueryBuildDataSource queryBuildDSSalesLine;
> QueryBuildRange queryBuildRange;
> QueryRun queryRun;
> SalesLine salesLine;
> SalesTable salesTable;
> ;
>
> // Setup the primary datasource.
> queryBuildDSSalesTable = query.addDataSource(tablenum(SalesTable));
> queryBuildDSSalesTable.addRange(fieldnum(SalesTable,SalesId)).value('00001_036');
>
> // Setup the secondary (joined) datasource.
> queryBuildDSSalesLine = queryBuildDSSalesTable.addDataSource(tablenum(SalesLine));
> queryBuildDSSalesLine.joinMode(JoinMode::InnerJoin);
> queryBuildDSSalesLine.relations(true);
> queryRun = new QueryRun(query);
> while(queryRun.next())
> {
> salesTable = queryRun.get(tablenum(SalesTable));
> salesLine = queryRun.get(tablenum(SalesLine));
> info(strfmt('%1 %2', salesTable.SalesId, salesLine.Name));
> }
※SalesLineには、SalesIdをキーにした
SalesTableへのリレーションが存在する。
参考:
http://dynamicsuser.net/forums/p/38436/197643.aspx