sách gpt4 ăn đã đi

mysql - Tôi không thể thay đổi Null thành 'Tổng' khi sử dụng MYSQL GROUP BY AND ROLLUP vào năm (ngày) và tháng (ngày)

In lại Tác giả: Walker 123 Thời gian cập nhật: 29-11-2023 06:52:00 29 4
mua khóa gpt4 giày nike

Tôi muốn tạo bảng bằng cách sử dụng GROUP BY WITH ROLLUP và nhận tổng số hàng thay vì null.

$sql = "CHỌN 
IF(YEAR(transactions.date) là null hoặc YEAR(transactions.date) = '','Total',YEAR(transactions.date)) là Năm,
IF(MONTH(transactions.date) là null hoặc MONTH(transactions.date) = '','Total',MONTH(transactions.date)) là Tháng,
SUM(transactions.amount)*0,01 dưới dạng Số tiền
TỪ giao dịch
NHÓM THEO
Năm,
Tháng
VỚI CUỘN LẠI
";


$result = $conn->query($sql);

nếu ($result->num_rows > 0) {
// dữ liệu đầu ra của mỗi hàng
trong khi($row = $result->fetch_assoc()) {
echo "||Năm:". $row["Năm"]."|THÁNG:" . $row["Tháng"]. "|Tổng:" . $row["Belopp"]. " ";
}
} khác {
echo "0 kết quả";
}
$conn->đóng();

Nhưng thay vì cho tôi Đúng hay sai, đầu ra lại cho tôi:

|Năm:2016|THÁNG:1|Tổng:408.1797 |
|Năm:2016|THÁNG:10|Tổng:-70.6915 |
|Năm:2016|THÁNG:11|Tổng:-189.0771 |
|Năm:2016|THÁNG:12|Tổng:-51.7362 |
|Năm:2016|THÁNG:2|Tổng:67.5001 |
|Năm:2016|THÁNG:3|Tổng:132.6177 |
|Năm:2016|THÁNG:4|Tổng:-36.4121 |
|Năm:2016|THÁNG:5|Tổng:-121.8800 |
|Năm:2016|THÁNG:6|Tổng:294.5811 |
|Năm:2016|THÁNG:7|Tổng:76.3505 |
|Năm:2016|THÁNG:8|Tổng:-201.3231 |
|Năm:2016|THÁNG:9|Tổng:-62.8723 |
|Năm:2016|THÁNG: |Tổng:245.2368 |
|Năm:2017|THÁNG:1|Tổng:156.2617 |
|Năm:2017|THÁNG:2|Tổng:-166.7156 |
|Năm:2017|THÁNG:3|Tổng:-183.3601 |
|Năm:2017|THÁNG:4|Tổng:-213.6732 |
|Năm:2017|THÁNG:5|Tổng:-149.0897 |
|Năm:2017|THÁNG:6|Tổng:-120.2097 |
|Năm:2017|THÁNG:7|Tổng:-302.1064 |
|Năm:2017|THÁNG:8|Tổng:-183.0638 |
|Năm:2017|THÁNG:9|Tổng:-119.3371 |
|Năm:2017|THÁNG: |Tổng:-1281.2939 |
|Năm: |THÁNG: |Tổng:347.6165

Nó trống, không phải "Tổng cộng". Tôi đã làm gì sai? Tôi cũng đã thử ifnull() nhưng vấn đề tương tự.

câu trả lời hay nhất

Nếu bạn muốn kiểm tra nó bằng SQL, bạn phải đặt truy vấn được nhóm vào truy vấn phụ và xử lý đầu ra trong truy vấn chính:

CHỌN IFNULL(Năm, 'Tổng cộng') LÀ Năm,
IFNULL(Tháng, 'Tổng cộng') AS Tháng,
Số lượng
TỪ (
CHỌN NĂM(transactions.date) NHƯ Năm,
THÁNG(giao dịch.ngày) NHƯ Tháng,
SUM(giao dịch.số tiền) * 0,01 Số tiền AS
TỪ giao dịch
NHÓM THEO Năm, Tháng
VỚI CUỘN LẠI
) Như x

Bạn cũng có thể thực hiện một truy vấn được nhóm và kiểm tra PHP VÔ GIÁ TRỊ:

trong khi($row = $result->fetch_assoc()) {
nếu ($row["Năm"] == null) {
$row["Năm"] = "Tổng cộng";
}
nếu ($row["Tháng"] == null) {
$row["Tháng"] = "Tổng cộng";
}
echo "||Năm:". $row["Năm"]."|THÁNG:" . $row["Tháng"]. "|Tổng:" . $row["Belopp"]. " ";
}

Về mysql - Tôi không thể thay đổi Null thành 'Tổng cộng' khi sử dụng MYSQL GROUP BY AND ROLLUP vào năm (ngày) và tháng (ngày), chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/47063161/

29 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress