Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Unikalne wartości i GROUP, jak to połączyć
TomASS
post 20.04.2007, 16:16:43
Post #1





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

Ostrzeżenie: (0%)
-----


Witam smile.gif

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 smile.gif

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
  1. 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:
  1. CREATE TABLE `np_transporty` (
  2. `ID` int(11) NOT NULL AUTO_INCREMENT,
  3. `Nr` bigint(52) DEFAULT NULL,
  4. ) ;
  5. INSERT INTO `np_transporty` VALUES (1, 111);
  6. INSERT INTO `np_transporty` VALUES (2, 222);


  1. CREATE TABLE `np_operacje` (
  2. `ID` int(11) NOT NULL AUTO_INCREMENT,
  3. `ID_transport` int(11) DEFAULT NULL,
  4. `Operacja` varchar(30) DEFAULT NULL,
  5. `Datetime` datetime DEFAULT NULL,
  6. UNIQUE KEY `ID` (`ID`)
  7. ) ;
  8.  
  9. INSERT INTO `np_operacje` VALUES (1, 1, 'Zamowienie', '2007-04-20 17:21:42');
  10. INSERT INTO `np_operacje` VALUES (2, 1, 'Zamowienie', '2007-04-11 17:21:52');
  11. INSERT INTO `np_operacje` VALUES (3, 2, 'Zamowienie', '2007-04-20 17:22:33');
  12. 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

Ten post edytował TomASS 20.04.2007, 16:40:47


--------------------
Go to the top of the page
+Quote Post
Sedziwoj
post 21.04.2007, 18:01:14
Post #2





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Poplątana ta wypowiedź... nie wiem czy dobrze zrozumiałem, może to będzie rozwiązaniem:
  1. SELECT `id`, `id_transport`, DATE(`datetime`) AS `data` FROM `np_operacje` WHERE `operacja` = 'Zamowienie' GROUP BY `data`;


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.06.2025 - 06:50