Hỏi/ Thắc mắc - Mọi người giúp em với ạ - em Code hoài không ra ạ về SQL COALESCE SUM Where | VN-Zoom | Cộng đồng Chia Sẻ Kiến Thức Công Nghệ và Phần Mềm Máy Tính

Adblocker detected! Please consider reading this notice.

We've detected that you are using AdBlock Plus or some other adblocking software which is preventing the page from fully loading.

We need money to operate the site, and almost all of it comes from our online advertising.

If possible, please support us by clicking on the advertisements.

Please add vn-z.vn to your ad blocking whitelist or disable your adblocking software.

×

Hỏi/ Thắc mắc Mọi người giúp em với ạ - em Code hoài không ra ạ về SQL COALESCE SUM Where

songxanh

Gà con
Chào mọi người ạ
Mình hỏng biết đăng bài viết ở đâu
Phải khởi tạo bài mới
hay vào bài viết góc lập trình đăng hỏi bài ạ
em tính hỏi cái này các anh giúp em với ạ
Em bí quá làm mãi mãi không ra mất gần cả tuần rồi huhu.. có ai giúp em ko ạ
có gì cho em số tài khoản em hậu tạ ít trăm hoặc số đt em gửi ít trăm thẻ nạp đt ạ
em không dám nhờ không không vì... công sức của mọi người suy nghĩ để phải cần có cơm có gạo nên em mới... xin số xin tài khoản để hậu tạ nếu em chạy đc code thành công ạ
----------------------------------------------
$myQuery = "SELECT
DATE_FORMAT( sales.date, '%e' ) AS date,
COALESCE(sum(sales.total), 0) as total,
COALESCE(sum(sales.total_tax), 0) as tax,
COALESCE(sum(sales.total_discount), 0) as discount
FROM (sales)
WHERE DATE_FORMAT( sales.date, '%Y-%m' ) = '{$year}-{$month}'
GROUP BY DATE_FORMAT( sales.date, '%e' )";
----------------------------
chỗ cái dòng
COALESCE(sum(sales.total), 0) as total,
ví zụ:
database Sales
date ...............| total | paid_by
-----------------------
2022-04-19 | 100k | AA
2022-04-19 | 20k | BB
2022-04-19 | 50k | CC
2022-04-19 | 80k | AA
2022-04-19 | 30k | CC
2022-04-19 | 40k | BB
2022-04-18 | 105k | AA
2022-04-18 | 25k | BB
2022-04-18 | 55k | CC
2022-04-18 | 85k | AA
2022-04-18 | 35k | CC
2022-04-18 | 45k | BB
2022-04-18 | 109k | AA
2022-04-18 | 29k | BB
2022-04-18 | 59k | CC
2022-04-18 | 89k | AA
2022-04-18 | 39k | CC
2022-04-18 | 49k | BB
Biết total là
total của ngày: 2022-04-19 có tổng là: 100+20+50+80+30+40 = 320k
total của ngày: 2022-04-18 có tổng là: 105+25+55+85+35+45 = 350k
total của ngày: 2022-04-17 có tổng là: 109+29+59+89+39+49 = 374k
làm sao
để Tính tổng số cùng ngày của:
* total của ngày: 2022-04-19 có tổng là: 100+20+50+80+30+40 = 320k
total loại AA của ngày: 2022-04-19 là 100k + 80k = 180k
total loại BB của ngày: 2022-04-19 là 20k + 40k = 60k
total loại CC của ngày: 2022-04-19 là 50k + 30k = 80k
*total của ngày: 2022-04-18 có tổng là: 105+25+55+85+35+45 = 350k
total loại AA của ngày: 2022-04-18 là 105k + 85k = 190k
total loại BB của ngày: 2022-04-18 là 25k + 45k = 70k
total loại CC của ngày: 2022-04-18 là 55k + 35k = 90k
*total của ngày: 2022-04-17 có tổng là: 109+29+59+89+39+49 = 374k
total loại AA của ngày: 2022-04-17 là 109k + 89k = 198k
total loại BB của ngày: 2022-04-17 là 29k + 49k = 78k
total loại CC của ngày: 2022-04-17 là 59k + 39k = 98k
ví zụ:
*trong cùng ngày thì
tổng AA riêng, Tổng BB riêng, Tổng CC riêng, Tổng Chung Riêng
*qua ngày khác thì
tổng AA riêng khác, Tổng BB riêng khác, Tổng CC riêng khác, Tổng Chung Riêng khác
*cho tới 30 ngày trong tháng
--> thì phải có 30 kết quả khác nhau
bạn nào nếu làm được thì lấy nguyên cái Đoạn mã của mình rồi bạn hãy Ghi lại rõ ràng chuẩn mực theo cách của các bạn... Mình copy vào mà chạy được thì mình sẽ rất Cảm ơn Hậu tạ bạn ạ


Chỉnh đoạn code sao vậy mọi người... Giúp giùm mình với ạ... Mình mò mờ mắt mãi ko ra
Ai giúp mình xong vui lòng để số đt lại mình bắn thẻ cao đt hoặc số tài khoản ạ... xin biết ơn và hậu tạ nếu chạy đc code ạ
z3349827659527-6a69cd417b27af9f88c8a0a06a76358e-huongdan-cacdong-SQL-sum-18042022at16h31.png

Code ở dưới em gộp chung mà làm không được ạ. Nó chỉ ra đúng mỗi dòng Total, tax, discount-giảm thôi ạ
------------------
public function getDailySales($year, $month)
{

/*$myQuery = "SELECT DATE_FORMAT( date, '%e' ) AS date, SUM( COALESCE( total, 0 ) ) AS total
FROM sales
WHERE DATE_FORMAT( date, '%Y-%m' ) = '{$year}-{$month}' AND status != 'cancelled'
GROUP BY DATE_FORMAT( date, '%e' )";*/

$myQuery = "
SELECT
DATE_FORMAT( sales.date, '%e' ) AS date,
paid_by,
COALESCE(sum(sales.total_tax), 0) as tax,
COALESCE(sum(sales.total_discount), 0) as discount,
COALESCE((select COALESCE(sum(sales.total), 0) FROM sales WHERE paid_by = 'cash' AND DATE_FORMAT( sales.date, '%Y-%m' ) = '{$year}-{$month}'),0) as totalca,
COALESCE((select COALESCE(sum(sales.total), 0) FROM sales WHERE paid_by = 'cash_b' AND DATE_FORMAT( sales.date, '%Y-%m' ) = '{$year}-{$month}'), 0) as totalca_b,
COALESCE((select COALESCE(sum(sales.total), 0) FROM sales WHERE paid_by = 'cash_c' AND DATE_FORMAT( sales.date, '%Y-%m' ) = '{$year}-{$month}'), 0) as totalca_c,
COALESCE((select COALESCE(sum(sales.total), 0) FROM sales WHERE paid_by = 'cc' AND DATE_FORMAT( sales.date, '%Y-%m' ) = '{$year}-{$month}'), 0) as totalcc,
COALESCE((select COALESCE(sum(sales.total), 0) FROM sales WHERE paid_by = 'ch' AND DATE_FORMAT( sales.date, '%Y-%m' ) = '{$year}-{$month}'), 0) as totalch,
COALESCE((select COALESCE(sum(sales.total), 0) FROM sales WHERE paid_by = 'cash_f_hangtra' AND DATE_FORMAT( sales.date, '%Y-%m' ) = '{$year}-{$month}'), 0) as totalcash_f_hangtra,
COALESCE((select COALESCE(sum(sales.total), 0) FROM sales WHERE paid_by = 'cash_g_thuno_si_tmat' AND DATE_FORMAT( sales.date, '%Y-%m' ) = '{$year}-{$month}'), 0) as totalcash_g_thuno_si_tmat,
COALESCE((select COALESCE(sum(sales.total), 0) FROM sales WHERE paid_by = 'cash_h_thuno_si_tck' AND DATE_FORMAT( sales.date, '%Y-%m' ) = '{$year}-{$month}'), 0) as totalcash_h_thuno_si_tck,
COALESCE((select COALESCE(sum(sales.total), 0) FROM sales WHERE paid_by = 'cash_z_nhap' AND DATE_FORMAT( sales.date, '%Y-%m' ) = '{$year}-{$month}'), 0) as totalcash_z_nhap,
COALESCE(sum(sales.total), 0) as total,

COALESCE(sum(sales.total), 0) as totalthucte,
COALESCE(sum(sales.total), 0) as totalthucte_tru_G
FROM (sales)
WHERE DATE_FORMAT( sales.date, '%Y-%m' ) = '{$year}-{$month}'
GROUP BY DATE_FORMAT( sales.date, '%e' )
";
$q = $this->db->query($myQuery, false);
if($q->num_rows() > 0) {
foreach (($q->result()) as $row) {
$data[] = $row;
}

return $data;
}
}
-------------------------------------------------------

Ai có thể chỉnh thì inbox riêng em ... thỏa thuận rồi hẹn giờ vào trực tiếp máy em edit nếu muôn ạ... anh em muốn sao cũng đc ạ... vui thi cùng vui, làm đc thì em hậu tạ đôi chút theo ý của a e ạ...
 
Sửa lần cuối:

lvt491

Rìu Vàng Đôi
Không dùng
SELECT SUM(cot) FROM bang [WHERE dieukien]; được à bạn
 

holyeyed

Búa Đá
Điều kiện tính tổng là cùng (năm-tháng-mã)
thì mình tạo 1 cột mới X(năm-tháng-mã), groupby X, sum (paid_by)
 

songxanh

Gà con
Điều kiện tính tổng là cùng (năm-tháng-mã)
thì mình tạo 1 cột mới X(năm-tháng-mã), groupby X, sum (paid_by)
bạn có thể copy cái đoạn mã của mình past trên bài mình đăng ... rồi bạn sửa lại theo cách của bạn được không ạ... chứ mình gà mờ ko hiểu rõ lắm ạ
ví zụ:
trong cùng ngày thì
tổng AA riêng, Tổng BB riêng, Tổng CC riêng, Tổng Chung Riêng
qua ngày khác thì
tổng AA riêng khác, Tổng BB riêng khác, Tổng CC riêng khác, Tổng Chung Riêng khác
cho tới 30 ngày trong tháng
thì phải có 30 kết quả khác nhau
bạn nếu làm được thì lấy nguyên cái Đoạn mã của mình rồi bạn, Ghi lại rõ ràng chuẩn mực theo cách của bạn... Mình copy vào mà chạy được thì mình sẽ rất Cảm ơn Hậu tạ bạn ạ
 

songxanh

Gà con
Không dùng
SELECT SUM(cot) FROM bang [WHERE dieukien]; được à bạn
tại mình thử mà nó hỏng được...
trong cùng ngày thì
tổng AA riêng, Tổng BB riêng, Tổng CC riêng, Tổng Chung Riêng
qua ngày khác thì
tổng AA riêng khác, Tổng BB riêng khác, Tổng CC riêng khác, Tổng Chung Riêng khác
cho tới 30 ngày trong tháng
thì phải có 30 kết quả khác nhau
bạn nếu làm được thì lấy nguyên cái Đoạn mã của mình rồi bạn, Ghi lại rõ ràng chuẩn mực theo cách của bạn... Mình copy vào mà chạy được thì mình sẽ rất Cảm ơn Hậu tạ bạn ạ
 


Top