Я хочу отобразить все данные о продукте в основном продукте, связанном в таблице rincian_order, но если в таблице rincian_order нет связанных данных о продукте, я хочу продолжать отображать их, заполнив «omzet» как 0, я ввожу код"coalesce (sum (rincian_order.jumlah_pc) / 6), 0) as omzet" это как оборот, но такой код неверен, кто-нибудь может помочь?
Номер ошибки: 1054 Неизвестный столбец '0) 'в' списке полей '
$this->datatables->select("mainproduk.id as id_m,mainproduk.barcode as barcod,mainproduk.nomor_kemtan as nomor_kemtan,mainproduk.nama_produk as nama_produk,mainproduk.satuan as satuan,mainproduk.nama_alias as nama_alias,mainproduk.produk_jadi as produk_jadi,mainproduk.nama_alias as nama_alias,mainproduk.nama_alias as nama_alias,mainproduk.nama_alias as nama_alias,mainproduk.min_stok_kemasan as min_stok_kemasan,mainproduk.tipe_produk as tipe_produk,mainproduk.top_item as top_item,mainproduk.status as status, coalesce(sum(rincian_order.jumlah_pc)/6), 0) as omzet");
$this->datatables->from("mainproduk");
$this->datatables->join("rincian_order", "mainproduk.barcode = rincian_order.barcode", "left");
$this->datatables->where("mainproduk.status =", "1");
$this->datatables->where("rincian_order.tipe =", "po");
$this->datatables->where("rincian_order.status !=", "canceled");
$this->datatables->where("rincian_order.tanggal_kirim >=", "2017-11-01");
$this->datatables->where("rincian_order.tanggal_kirim <=", "2018-04-30");
$this->datatables->group_by("mainproduk.id");
$this->db->order_by("mainproduk.id", "ASC");
$this->datatables->add_column("view", "<a href='editproduk/$1'><span class='glyphicon glyphicon-edit' aria-hidden='true'></span></a> | <a href='logproduk/$1'><span class='fa fa-fw fa-history'></span></a>", "id_m");
return $this->datatables->generate();
Мне уже удавалось использовать приведенный ниже код, но он не работал на серверах с данными> 1008 *
SELECT mainproduk.id as id,
mainproduk.barcode as barcod,
mainproduk.nama_produk,
mainproduk.nama_alias,
mainproduk.satuan,
mainproduk.produk_jadi,
mainproduk.kemasan,
mainproduk.min_stok_kemasan,
mainproduk.status,
mainproduk.top_item,
mainproduk.tipe_produk,
mainproduk.nomor_kemtan,
coalesce(sum(R.jumlah_pc),0) as omzet
FROM mainproduk
LEFT JOIN
(
SELECT id,barcode, jumlah_pc
FROM rincian_order WHERE tipe='po' AND status!='canceled' AND tanggal_kirim BETWEEN '2017-11-01' AND '2018-04-30'
) AS R
ON mainproduk.barcode = R.barcode WHERE status=1 GROUP BY mainproduk.id ORDER BY mainproduk.id ASC
мой контроллер
function json() {
header('Content-Type: application/json');
echo $this->ceklisqc_model->json();
}
мой сценарий datatables на стороне сервера
$(function () {
$.fn.dataTableExt.oApi.fnPagingInfo = function(oSettings)
{
return {
"iStart": oSettings._iDisplayStart,
"iEnd": oSettings.fnDisplayEnd(),
"iLength": oSettings._iDisplayLength,
"iTotal": oSettings.fnRecordsTotal(),
"iFilteredTotal": oSettings.fnRecordsDisplay(),
"iPage": Math.ceil(oSettings._iDisplayStart / oSettings._iDisplayLength),
"iTotalPages": Math.ceil(oSettings.fnRecordsDisplay() / oSettings._iDisplayLength)
};
};
var t = $("#example1").dataTable({
initComplete: function() {
var api = this.api();
$('#example1_filter input')
.off('.DT')
.on('keyup.DT', function(e) {
if (e.keyCode == 13) {
api.search(this.value).draw();
}
});
},
oLanguage: {
sProcessing: "loading..."
},
processing: true,
serverSide: true,
ajax: {"url": "json", "type": "POST"},
columns: [
{
"data": "id_m",
"orderable": false
},
{"data": "barcod"},
{"data": "nomor_kemtan"},
{"data": "nama_produk"},
{"data": "satuan"},
{"data": "nama_alias"},
{"data": "produk_jadi"},
{"data": "omzet"},
{"data": "nama_alias"},
{"data": "nama_alias"},
{"data": "min_stok_kemasan"},
{"data": "tipe_produk"},
{"data": "top_item"},
{"data": "status"},
{"data": "view"}
],
order: [[1, 'asc']],
rowCallback: function(row, data, iDisplayIndex) {
var info = this.fnPagingInfo();
var page = info.iPage;
var length = info.iLength;
var index = page * length + (iDisplayIndex + 1);
$('td:eq(0)', row).html(index);
}
});
});