Как получить данные из 3 таблиц в соответствии с датой в codeiginter? - PullRequest
0 голосов
/ 20 ноября 2018
public function St_statement() {

    $startdate = $this->input->post('SDate');
    $enddate = $this->input->post('EDate');
    $date = str_replace('/', '-', $startdate);
    $newDate = date("Y-m-d", strtotime($date));
    $date2 = str_replace('/', '-', $enddate);
    $newDate2 = date("Y-m-d", strtotime($date2));
    $data['startdate'] = $startdate;
    $data['enddate'] = $enddate;

    if ($this->input->post('all')) {
        $query1 = $this->db->query("SELECT `pgroup`,`Item`, SUM(`Stock`) AS `Stock`,SUM(`quantity`) AS `quantity`,SUM(`Qty`) AS `Qty`FROM `opstock` LEFT OUTER JOIN `salesitem` ON `salesitem`.`Prdtname` = `opstock`.`Item` LEFT OUTER JOIN `itemmaster` ON `itemmaster`.`itemname` = `opstock`.`Item` LEFT OUTER JOIN `pgroup` ON `pgroup`.`pgroupid` = `itemmaster`.`catcode` LEFT OUTER JOIN `purchaseitem` ON `purchaseitem`.`Prdtname` = `opstock`.`Item` WHERE  billdte >= '$newDate' AND billdte <= '$newDate2' AND billdate >= '$newDate' AND billdate <= '$newDate2' GROUP BY `Item` ORDER BY `pgroup` ASC ")->result_array();

        $data['query'] = $query1;

        $this->load->view('Inventory/St_Stmt', $data);

    }

    if ($this->input->post('selected')) {
        if ($name = $this->input->post('businessType')) {
            $query1 = $this->db->query("SELECT `pgroup`,`Item`, SUM(`Stock`) AS `Stock`,SUM(`quantity`) AS `quantity`,SUM(`Qty`) AS `Qty`FROM `opstock` LEFT OUTER JOIN `salesitem` ON `salesitem`.`Prdtname` = `opstock`.`Item` LEFT OUTER JOIN `itemmaster` ON `itemmaster`.`itemname` = `opstock`.`Item` LEFT OUTER JOIN `pgroup` ON `pgroup`.`pgroupid` = `itemmaster`.`catcode` LEFT OUTER JOIN `purchaseitem` ON `purchaseitem`.`Prdtname` = `opstock`.`Item` WHERE `pgroup` = '$name' AND billdte >= '$newDate' AND billdte <= '$newDate2' AND billdate >= '$newDate' AND billdate <= '$newDate2' GROUP BY `Item` ORDER BY `pgroup` ASC")->result_array();

            $data['query'] = $query1;

            $this->load->view('Inventory/St_Stmt', $data);

        }

    }
}

это код контроллера .....

Моя проблема в том, как получить данные из четырех таблиц, используя даты в codeiginter.когда я использую условие where, он извлекает данные только в том случае, если представлены все таблицы, в противном случае элемент не отображается. enter image description here

это изображение используется, когда condition.it показывает только все триТаблицы имеют один и тот же элемент. enter image description here

это изображение не используется там, где условие, но показывает все данные, если оно отсутствует или нет.

пожалуйста, помогитерешить эту проблему

1 Ответ

0 голосов
/ 20 ноября 2018

Переместите это, где оператор условия в "ON", он будет работать.

Например.

LEFT OUTER JOIN `salesitem` ON `salesitem`.`Prdtname` = `opstock`.`Item` AND billdte >= '$newDate' AND billdte <= '$newDate2' AND billdate >= '$newDate' AND billdate <= '$newDate2' 

Если это где, что является общим для всех вышеупомянутых условий.Вот почему вы не получаете никакого результата.Поэтому удалите его из условия и переместите это условие в оператор «ON».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...