sql >> Databasteknik >  >> RDS >> Mysql

Hämta poster från ordertabellen för den aktuella veckan

Låt oss göra precis vad du vill:

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;

Detta returnerar en uppsättning poster med week_day och sale_count . Läs mer här . Använd NOW() om du använder lokal datumtid eller använder UTC_TIMESTAMP() om du spelar med GMT.

Kom ihåg att jag inte känner till ditt databasnamn eller fältens namn. Du måste fylla i dessa.

ARBETSEXEMPEL:

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;

Detta är SQL för att skapa en tabell, lägg till 1 beställning per dag för denna vecka men 2 på måndag. Och frågan för att hämta rapporten.

OCH HÄR ÄR SQLFIDDLE.COM EXEMPEL .




  1. Hur man övervakar MySQL/MariaDB-databaser med Netdata på CentOS 7

  2. Bästa sättet att hantera stora (UUID) som en MySQL-tabell primärnyckel

  3. Varför måste jag dubbel-escape (använd 4 \) för att hitta ett snedstreck ( \ ) i ren SQL?

  4. En datamodell för handel med aktier, fonder och kryptovalutor