
Mam dwie tabele.
Pierwsza to transporty , a druga to tabela operacje zawierająca operacje robione na poszczególnych transportach. Pole ID_transport w tabeli operacje przyporządkowuje konkretna operacje do danego transportu. Do jednego transportu może być wiele operacji, nawet takich samych
Teraz chce uzyskać coś takiego:
Ile w poszczególnych dniach zostało złożonych unikalnych zamówień na transport

Każde zamówienie może mieć kilka operacji "Zamowienie" pierwsze określa kiedy wpadało do systemu - ile jakiego dnia zamówień wpadło do systemu
Do czego doszedłem:
LEFT JOIN
SELECT * FROM np_operacje AS O LEFT JOIN np_transporty AS T ON (T.ID=O.ID_transport) WHERE O.Operacja='Zamowienie' ORDER BY ID_transport;
No tak, ale teraz mam WSZYSTKIE operacje zamówień przypisanych do jednego transportu. Jak teraz wybrać te najwcześniejsze i zsumować dniami wszystkie? Każdy transport ma przynajmniej jedną operację "Zamowienie" :/
Baza danych:
CREATE TABLE `np_transporty` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `Nr` bigint(52) DEFAULT NULL, ) ; INSERT INTO `np_transporty` VALUES (1, 111); INSERT INTO `np_transporty` VALUES (2, 222);
CREATE TABLE `np_operacje` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `ID_transport` int(11) DEFAULT NULL, `Operacja` varchar(30) DEFAULT NULL, `Datetime` datetime DEFAULT NULL, UNIQUE KEY `ID` (`ID`) ) ; INSERT INTO `np_operacje` VALUES (1, 1, 'Zamowienie', '2007-04-20 17:21:42'); INSERT INTO `np_operacje` VALUES (2, 1, 'Zamowienie', '2007-04-11 17:21:52'); INSERT INTO `np_operacje` VALUES (3, 2, 'Zamowienie', '2007-04-20 17:22:33'); INSERT INTO `np_operacje` VALUES (4, 2, 'Potwierdzenie', '2007-04-21 17:22:38');
I teraz chce uzyskać:
2007-04-11 1 transport
2007-04-20 1 transport
Jakby doszedł trzeci transport (ID=3) i operacja "Zamowienie" o czasie np. 2007-04-11 21:22:32, to bym chciał:
2007-04-11 2 transporty
2007-04-20 1 transport
a jeżeli miałby czas 2007-04-12 23:44:12
2007-04-11 1 transport
2007-04-12 1 transport
2007-04-20 1 transport
czyli tutaj ilość transportów w tabeli np_transporty musi sie równać sumie transportów z zapytania.
Tomek