0

I've created a query that selects the sum() of a period of 5 hours but am having an issue getting desired results. They way it's currently written I get repeated values 21.47,21.47,21.47,21.47,21.47 or [{"oneHour":"229376","twoHour":"0","threeHour":"0","fourHour":"0","fiveHour":"0"}] as response depending on how I get the results.

Any help would be greatly appreciated.

CREATE TABLE `numbers` (
  `id` int(id) NOT NULL,
  `inserttime` datetime NOT NULL DEFAULT current_timestamp(),
  `number` decimal(11,2) NOT NULL DEFAULT 0.00
)

SELECT CASE WHEN inserttime BETWEEN NOW() - INTERVAL 60 MINUTE AND NOW() THEN SUM(number) ELSE 0 END AS oneHour,
CASE WHEN inserttime BETWEEN NOW() - INTERVAL 120 MINUTE AND NOW() - INTERVAL 60 MINUTE THEN SUM(number) ELSE 0 END AS twoHour,
CASE WHEN inserttime BETWEEN NOW() - INTERVAL 180 MINUTE AND NOW() - INTERVAL 120 MINUTE THEN SUM(number) ELSE 0 END AS threeHour,
CASE WHEN inserttime BETWEEN NOW() - INTERVAL 240 MINUTE AND NOW() - INTERVAL 180 MINUTE THEN SUM(number) ELSE 0 END AS fourHour,
CASE WHEN inserttime BETWEEN NOW() - INTERVAL 300 MINUTE AND NOW() - INTERVAL 240 MINUTE THEN SUM(number) ELSE 0 END AS fiveHour
FROM `numbers` WHERE inserttime BETWEEN NOW() - INTERVAL 300 MINUTE AND NOW()
MatBailie
  • 83,401
  • 18
  • 103
  • 137
unknown1
  • 15
  • 4

0 Answers0