У меня проблема с запросом. Я хочу посчитать появление определенной фразы в данном столбце в определенное время.
Это моя таблица:
CREATE TABLE 'table' (
'id' int(11) NOT NULL,
'prodId' int(11) NOT NULL,
'bookingAt' datetime NOT NULL,
'equipmentType' varchar(30) NOT NULL,
'shippingAt' datetime DEFAULT NULL
)
У меня есть рабочий запрос, проверяющий количество поступления инвентаря:
SELECT g1.equipmentType,COUNT(*) as count FROM table g1
WHERE g1.shippingAt IS NULL AND
g1.bookingAt BETWEEN :from AND :to GROUP BY g1.equipmentType
Но я не знаю, как построить запрос для отправленных продуктов: (Пример данных в таблице:
INSERT INTO 'table' ('id', 'prodId', 'bookingAt', 'equipmentType', 'shippingAt') VALUES
(1, 9911199, '2018-04-05 09:30:03', 'Type1','2018-04-05 14:00:00'),
(2, 9911100, '2018-04-05 08:00:00', 'Type1','2018-04-05 14:10:00'),
(3, 1234563, '2018-04-05 10:05:40', 'Type2', NULL);
Рабочий результат (заказ) с моим запросом:
array [
0 => array [
"equipmentType" => "Type2"
"count" => "1"
]
Ожидаемый результат (отгрузка):
array [
0 => array [
"equipmentType" => "Type1"
"count" => "2"
]
Добавление "НЕ" к тесту на NULL при отправке. Это даст вам отгруженные продукты.
SELECT g1.equipmentType,COUNT(*) as count
FROM table g1
WHERE g1.shippingAt IS NOT NULL
AND g1.bookingAt BETWEEN :from AND :to
GROUP BY g1.equipmentType;
Этот запрос основан на таблице и данных, которые вы указали, но как это относится к названию, или то, что вы задавали в начале вопроса, является загадкой.