Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wyświetlenie sumy zamówień których wszystkie elementy spełniają warunek
cos145
post 19.07.2011, 14:45:04
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 23.06.2011

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


Baza wygląda następująco :

  1.  
  2. CREATE TABLE IF NOT EXISTS `orders` (
  3. `id` int(11) NOT NULL,
  4. `sum` decimal(10,2) NOT NULL DEFAULT '0.00',
  5. PRIMARY KEY (`id`),
  6. KEY `sdasdasd` (`id_user`)
  7. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;
  8.  
  9. -- --------------------------------------------------------
  10.  
  11. --
  12. -- Struktura tabeli dla `order_detail`
  13. --
  14.  
  15. CREATE TABLE IF NOT EXISTS `order_detail` (
  16. `id_order` int(11) NOT NULL,
  17. `id_prod` int(11) NOT NULL,
  18. `price` decimal(10,2) NOT NULL DEFAULT '0.00',
  19. `amount` int(11) NOT NULL,
  20. PRIMARY KEY (`id_order`,`id_prod`)
  21. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;
  22.  
  23.  
  24.  
  25. CREATE TABLE IF NOT EXISTS `products` (
  26. `id` int(11) NOT NULL,
  27. `name` varchar(200) COLLATE utf8_polish_ci NOT NULL,
  28. `price` decimal(10,2) NOT NULL DEFAULT '0.00',
  29. PRIMARY KEY (`id`)
  30. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;
  31.  
  32.  
  33. ALTER TABLE `orders`
  34. ADD CONSTRAINT `sdasdasd` FOREIGN KEY (`id_user`) REFERENCES `users` (`id`) ON DELETE CASCADE;
  35.  
  36.  
  37. ALTER TABLE `order_detail`
  38. ADD CONSTRAINT `order_detail_ibfk_1` FOREIGN KEY (`id_order`) REFERENCES `orders` (`id`) ON DELETE CASCADE;
  39.  


Załóżmy że chcę wyświetlić sumę zamówień 'wartość zamówień' tzn. order.sum , ale tylko dla zamówień w których wszystkie ! produkty zaczynają się od np. P .
Dodam że interesują mnie "wszystkie" bo wiem jak zrobić jeden lub więcej produktów w zamówieniu spełniających warunek

Ten post edytował cos145 19.07.2011, 14:46:03
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
cos145
post 19.07.2011, 18:02:51
Post #2





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 23.06.2011

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


Zjadłeś 'from orders'

ale bardziej chodziło mi o zapytanie
  1. SELECT o.sum FROM orders o JOIN order_detail od ON o.id = od.id_order
  2. JOIN products p ON od.id_prod = p.id
  3. WHERE trim(upper(p.name)) LIKE 'P%' GROUP BY o.id


tylko problem w tym że zostaną wyświetlone wszystkie zamówienia w których przynajmniej jeden produkt zaczyna się na p.

a wieć np. jeżeli w zamówieniu 1 będzie

1a.Produkt1 i 1b.Mąka to zostanie wyświetlone a nie powinno.

Chcę wyświetlić zamówienia w których wszystkie produkty są na P.
a więc
1a Produkt1 1b Produkt2 i 1c.Powidła

Nie pytajcie mnie tylko dlaczego akurat chce wyświetlić produkty na P. to jest tylko przykład smile.gif
Tak naprawdę chodzi o to żeby wszystkie elementy zamówienia spełniały jakiś warunek w tym przypadku jest to akurat nazwa produktu zaczynająca się na P, ale chodzi o to żeby albo wszystkie spełniały taki warunek albo żaden z nich.

Ten post edytował cos145 19.07.2011, 18:06:59
Go to the top of the page
+Quote Post

Posty w temacie


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: 24.06.2025 - 05:00