Child pages
  • QBGroupBy

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin
Wiki Markup
{div:style=display:none}
DO NOT EDIT THE CONTENT OF THIS PAGE DIRECTLY (EXCEPT INSIDE THE DIV BELOW WITH ID=DESCRIPTION), UNLESS YOU KNOW WHAT YOU'RE DOING.
		THE STRUCTURE OF THE CONTENT IS VITAL IN BEING ABLE TO AUTO UPDATE THE CONTENT THROUGH THE DOC GENERATOR.\\		\\		Enter additional information related to this 'class' inside the \{div} macro with 'id=description'{div}
{div:id=description}{div}\\ 

{table:id=|class=servoy sSummary}{colgroup}{column:width=80px|padding=0px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}Property Summary{th}{tr}{tbody}{tr}{td}[QBSelect]{td}{td}[#parent]
Get query builder parent table clause, this may be a query or a join clause.{td}{tr}{tbody}{tbody}{tr}{td}[QBSelect]{td}{td}[#root]
Get query builder parent.{td}{tr}{tbody}{table}\\ 

{table:id=|class=servoy sSummary}{colgroup}{column:width=80px|padding=0px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}Method Summary{th}{tr}{tbody}{tr}{td}[QBGroupBy]{td}{td}[#add]\(column)
Add column name to group\-by clause.{td}{tr}{tbody}{tbody}{tr}{td}[QBGroupBy]{td}{td}[#add]\(function)
Add column name to group\-by clause.{td}{tr}{tbody}{tbody}{tr}{td}[QBGroupBy]{td}{td}[#addPk]\()
Add the tables' primary pk columns in alphabetical order to the group by clause.{td}{tr}{tbody}{tbody}{tr}{td}[QBGroupBy]{td}{td}[#clear]\()
Clear the to group\-by clause.{td}{tr}{tbody}{table}\\ 

{table:id=property|class=servoy sDetail}{colgroup}{column:width=100%|padding=0px}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Property Details{th}{tr}{tbody:id=parent}{tr:id=name}{td}h6.parent{td}{tr}{tr:id=des}{td}{div:class=sIndent}Get query builder parent table clause, this may be a query or a join clause.{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[QBSelect]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
/** @type {QBSelect<db:/example_data/person>} */
	var query = databaseManager.createSelect('db:/example_data/person')
	query.where.add(query.joins.person_to_parent.joins.person_to_parent.columns.name.eq('john'))
	foundset.loadRecords(query)
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=root}{tr:id=name}{td}h6.root{td}{tr}{tr:id=des}{td}{div:class=sIndent}Get query builder parent.{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[QBSelect]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
/** @type {QBSelect<db:/example_data/order_details>} */
	var subquery = databaseManager.createSelect('db:/example_data/order_details')
	
 /** @type {QBSelect<db:/example_data/orders>} */
	var query = databaseManager.createSelect('db:/example_data/orders')
	query.where.add(query
		.or 
			.add(query.columns.order_id.not.isin([1, 2, 3]))
			
			.add(query.exists(
					subquery.where.add(subquery.columns.orderid.eq(query.columns.order_id)).root
			))
		)
		
	foundset.loadRecords(query)
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}\\ 

{table:id=function|class=servoy sDetail}{colgroup}{column:width=100%|padding=0px}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Method Details{th}{tr}{tbody:id=add-QBColumn}{tr:id=name}{td}h6.add{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[QBGroupBy]{span}{span:style=font-weight: bold;}add{span}{span}\(column){span}{td}{tr}{tr:id=des}{td}{div:class=sIndent}Add column name to group\-by clause.

Same as query.groupBy().add(join.getColumn("value")){div}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[QBColumn]} column -- the column to add to the query condition
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[QBGroupBy]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
/** @type {QBSelect<db:/example_data/orders>} */
var query = databaseManager.createSelect('db:/example_data/orders')
query.groupBy.add(query.columns.orderid) // have to group by on pk when using having-conditions in (foundset) pk queries
.root.having.add(query.joins.orders_to_order_details.columns.quantity.count.eq(0))
foundset.loadRecords(query)
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=add-QBFunction}{tr:id=name}{td}h6.add{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[QBGroupBy]{span}{span:style=font-weight: bold;}add{span}{span}\(function){span}{td}{tr}{tr:id=des}{td}{div:class=sIndent}Add column name to group\-by clause.

Same as query.groupBy().add(join.getColumn("value")){div}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[QBFunction]} function -- the function to add to the query
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[QBGroupBy]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
/** @type {QBSelect<db:/example_data/orders>} */
var query = databaseManager.createSelect('db:/example_data/orders')
query.groupBy.add(query.columns.orderid) // have to group by on pk when using having-conditions in (foundset) pk queries
.root.having.add(query.joins.orders_to_order_details.columns.quantity.count.eq(0))
foundset.loadRecords(query)
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=addPk}{tr:id=name}{td}h6.addPk{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[QBGroupBy]{span}{span:style=font-weight: bold;}addPk{span}{span}\(){span}{td}{tr}{tr:id=des}{td}{div:class=sIndent}Add the tables' primary pk columns in alphabetical order to the group by clause.{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[QBGroupBy]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
/** @type {QBSelect<db:/example_data/orders>} */
var query = databaseManager.createSelect('db:/example_data/orders')
query.groupBy.addPk() // have to group by on pk when using having-conditions in (foundset) pk queries
.root.having.add(query.joins.orders_to_order_details.columns.quantity.count.eq(0))
foundset.loadRecords(query)
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=clear}{tr:id=name}{td}h6.clear{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[QBGroupBy]{span}{span:style=font-weight: bold;}clear{span}{span}\(){span}{td}{tr}{tr:id=des}{td}{div:class=sIndent}Clear the to group\-by clause.{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[QBGroupBy]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var q = foundset.getQuery()
q.where.add(q.columns.x.eq(100))
query.groupBy.clear.root.clearHaving()
foundset.loadRecords(q);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}