public function getDebits(){
$data = array(
'debit_side.account_code DebitCode',
'group_concat(distinct accounts.name) as DebitAccount',
'group_concat(debit_side.amount) as DebitAmount',
'group_concat(transaction_info.voucher_date) as DebitVoucherDate'
);
$this->db->select($data);
$this->db->from('accounts');
$this->db->join('credit_side','accounts.code = credit_side.account_code','left');
$this->db->join('debit_side','debit_side.transaction_id_dr = credit_side.transaction_id_cr','left');
$this->db->join('transaction_info','transaction_info.transaction_id = credit_side.transaction_id_cr','left');
$this->db->group_by('debit_side.account_code');
$this->db->order_by('debit_side.account_code','ASC');
$query = $this->db->get();
return $query->result_array();
}
public function getCredits()
{
$data = array(
'credit_side.account_code CreditCode',
'group_concat(distinct accounts.name) as CreditAccount',
'group_concat(credit_side.amount) as CreditAmount',
'group_concat(transaction_info.voucher_date) as CreditVoucherDate'
);
$this->db->select($data);
$this->db->from('accounts');
$this->db->join('debit_side','accounts.code = debit_side.account_code','left');
$this->db->join('credit_side','debit_side.transaction_id_dr = credit_side.transaction_id_cr','left');
$this->db->join('transaction_info','transaction_info.transaction_id = credit_side.transaction_id_cr','left');
$this->db->group_by('credit_side.account_code');
$this->db->order_by('credit_side.account_code','ASC');
$query = $this->db->get();
return $query->result_array();
}
Sorry voor de late reactie, maar dit is het perfecte ding dat je wilt testen voordat je er iets mee doet. ik wilde hiervoor een weergavebestand maken, maar het lijkt ingewikkeld en kost meer tijd, wat op dit moment meer is
BEWERKT
Deze oplossing zou u kunnen storen, aangezien ik het heb getest. Hoe ooit ik heb geprobeerd om deze twee vragen te combineren en het is gelukt. De zoekopdracht lijkt misschien iets ingewikkelds, maar het levert de perfecte resultaten op. Hier is het
$data = array(
'debit_side.account_code Code',
'group_concat(distinct accounts.name) as DebitAccount',
'group_concat(debit_side.amount) as DebitAmount',
'group_concat(transaction_info.voucher_date) as DebitVoucherDate',
'(SELECT group_concat(distinct accounts.name) as CreditAccount FROM (accounts)
left JOIN debit_side ON accounts.code = debit_side.account_code
left JOIN credit_side ON debit_side.transaction_id_dr = credit_side.transaction_id_cr
left JOIN transaction_info ON transaction_info.transaction_id = credit_side.transaction_id_cr
group by credit_side.account_code
having credit_side.account_code = `Code`) as CreditAccount',
'(SELECT group_concat(credit_side.amount) as CreditAmount FROM (accounts)
left JOIN debit_side ON accounts.code = debit_side.account_code
left JOIN credit_side ON debit_side.transaction_id_dr = credit_side.transaction_id_cr
left JOIN transaction_info ON transaction_info.transaction_id = credit_side.transaction_id_cr
group by credit_side.account_code
having credit_side.account_code = `Code`) as CreditAmount',
'(SELECT group_concat(transaction_info.voucher_date) as CreditVoucherDate FROM (accounts)
left JOIN debit_side ON accounts.code = debit_side.account_code
left JOIN credit_side ON debit_side.transaction_id_dr = credit_side.transaction_id_cr
left JOIN transaction_info ON transaction_info.transaction_id = credit_side.transaction_id_cr
group by credit_side.account_code
having credit_side.account_code = `Code`) as CreditVoucherDate'
);
$this->db->select($data);
$this->db->from('accounts');
$this->db->join('credit_side','accounts.code = credit_side.account_code','left');
$this->db->join('debit_side','debit_side.transaction_id_dr = credit_side.transaction_id_cr','left');
$this->db->join('transaction_info','transaction_info.transaction_id = credit_side.transaction_id_cr','left');
$this->db->group_by('debit_side.account_code');
$this->db->order_by('debit_side.account_code','ASC');
$query = $this->db->get();
return $query->result_array();
Hoewel deze zoekopdracht prima werkt, maar hier is een aangepaste en geoptimaliseerde versie van deze zoekopdracht. Ik heb echt dingen geleerd van deze zoekopdracht, je zou hier ook naar moeten kijken
Vreemd gedrag van groeperen door in zoekopdracht die moet worden geoptimaliseerd