Как найти количество определенных строк и других столбцов с другим, где условие в CodeIgniter - PullRequest
0 голосов
/ 25 февраля 2019

Это код моей модели:

function getSaleOrderFormInfoDetail($saleOrderId)
{
$this->db->_protect_identifiers=false;

$this->db->select('BaseTbl.itemId, count(CASE WHEN SaleOrder.orderDate >= DATE_ADD(curdate(), INTERVAL -6 MONTH) AND SaleOrder.orderDate <= curdate() THEN SaleOrder.orderDate ELSE NULL END) as totalOrderLast6Month');
$this->db->from('tbl_saleorderdetail as BaseTbl');
$this->db->join('tbl_saleorders as SaleOrder', 'SaleOrder.saleOrderId = BaseTbl.masterId','left');
$this->db->where('BaseTbl.masterId', $saleOrderId);
$this->db->order_by("BaseTbl.id", "asc");
$query = $this->db->get();

return $query->result();
}

. Из этого запроса я получаю каждый элемент заказа на продажу с его последним 6-месячным количеством записей о продажах с фиксированным пунктом where $this->db->where('BaseTbl.masterId', $saleOrderId);.я хочу получить пункты этого предложения where, но мне также нужно количество записей за последние 6 месяцев all заказов на продажу.

1 Ответ

0 голосов
/ 25 февраля 2019

Попробуйте позвонить getSaleOrderFormInfoDetail дважды.

Первый раз с условием и второй раз без условия

function getSaleOrderFormInfoDetail($saleOrderId = '')
{
$this->db->_protect_identifiers=false;

$this->db->select('BaseTbl.itemId, count(CASE WHEN SaleOrder.orderDate >= DATE_ADD(curdate(), INTERVAL -6 MONTH) AND SaleOrder.orderDate <= curdate() THEN SaleOrder.orderDate ELSE NULL END) as totalOrderLast6Month');
$this->db->from('tbl_saleorderdetail as BaseTbl');
$this->db->join('tbl_saleorders as SaleOrder', 'SaleOrder.saleOrderId = BaseTbl.masterId','left');
if(!empty($saleOrderId)){
   $this->db->where('BaseTbl.masterId', $saleOrderId);
}
$this->db->order_by("BaseTbl.id", "asc");
$query = $this->db->get();

return $query->result();
}

Теперь сделайте вот так

$counter = count($this->model_name->getSaleOrderFormInfoDetail());

Этобудет считать строки

$data = $this->model_name->getSaleOrderFormInfoDetail($saleOrderId);

Это даст вам данные с условием

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