new ExpressionField('FROM_NAME', 'COUNT(%s)', 'A.NAME'),
new ExpressionField('TO_NAME', 'COUNT(%s)', 'B.NAME'),
use Bitrix\Main\ORM\Fields\Relations\Reference;
use Bitrix\Main\ORM\Query\Join;
use Bitrix\Main\Entity\ExpressionField;
CModule::IncludeModule('iblock');
//история транзакций
$authorsIblock = \Bitrix\Iblock\Iblock::wakeUp(2);
//счета
$refIb = \Bitrix\Iblock\Iblock::wakeUp(1);
$res = $authorsIblock->getEntityDataClass()::getList([
'select' => [
'ACCOUNT_FROM_VALUE' => 'ACCOUNT_FROM.VALUE', 'ACCOUNT_TO_VALUE' => 'ACCOUNT_TO.VALUE',
'FROM_NAME' => 'A.NAME', 'TO_NAME' => 'B.NAME',
'COUNT',
],
'filter' => ['>DATE_CREATE'=> ConvertTimeStamp(AddToTimeStamp(array('HH' => -6)), 'FULL')],
'runtime' => [
new Reference(
'A',
$refIb->getEntityDataClass(),
Join::on('this.ACCOUNT_FROM_VALUE', 'ref.ID')
),
new Reference(
'B',
$refIb->getEntityDataClass(),
Join::on('this.ACCOUNT_TO_VALUE', 'ref.ID')
),
new ExpressionField('COUNT', 'COUNT(*)'),
]
])->fetchAll();
//Вот я указываю поля, по которым нужно группировать
'group' => ['FROM_NAME', 'TO_NAME'],
//считаю сгруппированные поля
new \Bitrix\Main\Entity\ExpressionField('COUNT', 'COUNT(*)'),
Фильтр не работает потому что передаешь дату не в формате БД
use Bitrix\Main\ORM\Fields\Relations\Reference;
use Bitrix\Main\ORM\Query\Join;
CModule::IncludeModule('iblock');
//история транзакций
$authorsIblock = \Bitrix\Iblock\Iblock::wakeUp(2);
//счета
$refIb = \Bitrix\Iblock\Iblock::wakeUp(1);
$res = $authorsIblock->getEntityDataClass()::getList([
'order' => ['DATE_CREATE'=>'DESC'],
'select' => [
'ID', 'NAME', 'ACCOUNT_FROM_VALUE' => 'ACCOUNT_FROM.VALUE', 'ACCOUNT_TO_VALUE' => 'ACCOUNT_TO.VALUE',
'FROM_NAME' => 'A.NAME', 'TO_NAME' => 'B.NAME',
'COUNT',
],
'filter' => ['DATE_CREATE'=> ConvertTimeStamp(AddToTimeStamp(array('HH' => -6)), 'FULL')],
'group' => ['FROM_NAME', 'TO_NAME'],
'runtime' => [
new Reference(
'A',
$refIb->getEntityDataClass(),
Join::on('this.ACCOUNT_FROM_VALUE', 'ref.ID')
),
new Reference(
'B',
$refIb->getEntityDataClass(),
Join::on('this.ACCOUNT_TO_VALUE', 'ref.ID')
),
new \Bitrix\Main\Entity\ExpressionField('COUNT', 'COUNT(*)'),
]
])->fetchAll();