"SELECT Dated,
CASE WHEN `Account_ID` = 2 then SUM(Total_Bricks) ELSE 0 end as 'Nadeem',
CASE WHEN Account_ID = 2 then SUM(Kaat_Bricks) ELSE 0 end as 'NadeemKaat',
CASE WHEN `Account_ID` = 7 then SUM(Total_Bricks) ELSE 0 end as 'Abid',
CASE WHEN Account_ID = 7 then SUM(Kaat_Bricks) ELSE 0 end as 'AbidKaat',
CASE WHEN `Account_ID` = 8 then SUM(Total_Bricks) ELSE 0 end as 'Sajid',
CASE WHEN Account_ID = 8 then SUM(Kaat_Bricks) ELSE 0 end as 'SajidKaat'
FROM `tblstockdetail` GROUP BY `Dated`"
< /code>
Я сгенерировал этот запрос через простую петлю foreach < /p>
$stock = $this->Kharkaar_Model->get_stockdetail();
$sql = '"SELECT Dated, ';
$numItems = count($stock);
$i = 0;
foreach ($stock as $key => $value) {
if (++$i === $numItems) {
$sql.= "CASE WHEN `Account_ID` = ".$value['Account_ID']." then SUM(Total_Bricks) ELSE 0 end as '".$value['AccountName']."',
CASE WHEN Account_ID = ".$value['Account_ID']." then SUM(Kaat_Bricks) ELSE 0 end as '".$value['AccountName']."Kaat'
FROM `tblstockdetail` GROUP BY `Dated`";
} else {
$sql.= "CASE WHEN `Account_ID` = ".$value['Account_ID']." then SUM(Total_Bricks) ELSE 0 end as '".$value['AccountName']."',
CASE WHEN Account_ID = ".$value['Account_ID']." then SUM(Kaat_Bricks) ELSE 0 end as '".$value['AccountName']."Kaat',
";
}
}
$sql.= '"';
< /code>
Теперь, когда я пытаюсь получить результат этого запроса с помощью: < /p>
$result = $this->db->query($sql);
< /code>
Это дает мне синтаксисную ошибку, в противном случае, когда я помещаю этот запрос прямо в: < /p>
$result = $this->db->query(// string query here );
Я использую Codeigniter, и мне нужно использовать агрегатные функции в моем запросе. У меня есть этот запрос. < /P> [code]"SELECT Dated, CASE WHEN `Account_ID` = 2 then SUM(Total_Bricks) ELSE 0 end as 'Nadeem', CASE WHEN Account_ID = 2 then SUM(Kaat_Bricks) ELSE 0 end as 'NadeemKaat', CASE WHEN `Account_ID` = 7 then SUM(Total_Bricks) ELSE 0 end as 'Abid', CASE WHEN Account_ID = 7 then SUM(Kaat_Bricks) ELSE 0 end as 'AbidKaat', CASE WHEN `Account_ID` = 8 then SUM(Total_Bricks) ELSE 0 end as 'Sajid', CASE WHEN Account_ID = 8 then SUM(Kaat_Bricks) ELSE 0 end as 'SajidKaat' FROM `tblstockdetail` GROUP BY `Dated`" < /code> Я сгенерировал этот запрос через простую петлю foreach < /p> $stock = $this->Kharkaar_Model->get_stockdetail();
$sql = '"SELECT Dated, ';
$numItems = count($stock); $i = 0; foreach ($stock as $key => $value) { if (++$i === $numItems) { $sql.= "CASE WHEN `Account_ID` = ".$value['Account_ID']." then SUM(Total_Bricks) ELSE 0 end as '".$value['AccountName']."',
CASE WHEN Account_ID = ".$value['Account_ID']." then SUM(Kaat_Bricks) ELSE 0 end as '".$value['AccountName']."Kaat' FROM `tblstockdetail` GROUP BY `Dated`"; } else { $sql.= "CASE WHEN `Account_ID` = ".$value['Account_ID']." then SUM(Total_Bricks) ELSE 0 end as '".$value['AccountName']."',
CASE WHEN Account_ID = ".$value['Account_ID']." then SUM(Kaat_Bricks) ELSE 0 end as '".$value['AccountName']."Kaat', "; } } $sql.= '"'; < /code> Теперь, когда я пытаюсь получить результат этого запроса с помощью: < /p> $result = $this->db->query($sql); < /code> Это дает мне синтаксисную ошибку, в противном случае, когда я помещаю этот запрос прямо в: < /p> $result = $this->db->query(// string query here ); [/code] ... Это работает нормально.