Hãy làm chính xác những gì bạn muốn:
SELECT
WEEKDAY(`datetime_field`) AS `week_day`,
COUNT(*) AS `sale_count`
FROM `orders`
WHERE YEARWEEK(`datetime_field`) = YEARWEEK(NOW())
GROUP BY `week_day`
ORDER BY `week_day` ASC;
Điều này trả về một tập hợp các bản ghi có week_day
và sale_count
. Tìm hiểu thêm tại đây
. Sử dụng NOW()
nếu bạn sử dụng ngày giờ cục bộ hoặc sử dụng UTC_TIMESTAMP()
nếu bạn chơi theo giờ GMT.
Hãy nhớ rằng tôi không biết tên cơ sở dữ liệu của bạn hoặc tên các trường. Bạn cần điền những thông tin đó vào.
VÍ DỤ LÀM VIỆC:
CREATE TABLE `orders` (
`OrderID` int(11) NOT NULL AUTO_INCREMENT,
`OrderDate` datetime NOT NULL,
`OrderValue` decimal(7,2) unsigned NOT NULL,
PRIMARY KEY (`OrderID`)
);
INSERT INTO `orders` VALUES ('1', '2012-10-29 14:02:19', '100.00');
INSERT INTO `orders` VALUES ('2', '2012-10-30 14:02:19', '123.00');
INSERT INTO `orders` VALUES ('3', '2012-10-31 14:02:19', '103.00');
INSERT INTO `orders` VALUES ('4', '2012-11-01 14:02:19', '232.00');
INSERT INTO `orders` VALUES ('5', '2012-11-02 14:02:19', '321.00');
INSERT INTO `orders` VALUES ('6', '2012-11-03 14:02:19', '154.00');
INSERT INTO `orders` VALUES ('7', '2012-11-04 14:02:19', '112.00');
INSERT INTO `orders` VALUES ('8', '2012-10-29 14:02:19', '100.00');
SELECT
WEEKDAY(`OrderDate`) AS `week_day`,
COUNT(*) AS `sales_count`,
SUM(`OrderValue`) AS `sales_value`
FROM `orders`
WHERE YEARWEEK(`OrderDate`) = YEARWEEK(NOW())
GROUP BY `week_day`
ORDER BY `week_day` ASC;
Đây là SQL để tạo bảng, thêm 1 đơn hàng mỗi ngày cho tuần này nhưng 2 đơn hàng vào thứ Hai. Và truy vấn để tìm nạp báo cáo.
VÀ CỦA ĐÂY SQLFIDDLE.COM MẪU .