![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 54 Pomógł: 1 Dołączył: 29.03.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Witam
Posiadam tabelę 'sub_order' (sub_order_Id | tool_id | client_id) oraz dwie tabele 'tools' (tool_id, tool_name) oraz 'clients' (client_id, client_name). Potrzebuję stworzyć zapytanie sql tak aby wygenerowało mi tabelę krzyżową, gdzie kolumny to elementy tool_name, a wiersze to elementy client_name. Na skrzyżowaniach suma wierszy gdzie pojawiają się tool_id z tlient_id. Generalnie chodzi o zaprezentowanie ile danych narzędzi kupili poszczególni klienci. Bardzo proszę o pomoc w stworzeniu zapytania, a szczególnie będę wdzięczny jeśli ktoś poda jakiś ciekawy link z wyjaśnieniem podobnego problemu. -------------------- ze4lot.pl
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 54 Pomógł: 1 Dołączył: 29.03.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
@mmmmmmm
Dzięki za pomoc ale szukam rozwiązania gdzie ilość unikalnych elementów tool oraz client jest nieznana. EDIT: Dla lepszego zrozumienia o co mi chodzi poniżej moja wizja tego co powinno zwrócić zapytanie:
Ten post edytował ze4lot 24.06.2013, 13:40:13 -------------------- ze4lot.pl
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 340 Pomógł: 49 Dołączył: 3.07.2009 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Przykro mi, ale MySQL nie posiada gotowej funkcji tworzącej tebele przestawne.
Taki mechanizm istnieje w produktach Microsoftu czyli MSSQL. Jest to funkcja PIVOT Oczywiście, w MySQL da się to również wykonać, ale trzeba napisać np. własną funkcję... W googlach pod hasłem mysql pivot znajdziesz trochę pomysłów, ale wszystkie mają swoje dobre i złe strony. Swoją drogą może php.net zaproponuje konkurs na napisanie takiej uniwersalnej funkcji (konkurs może być z nagrodami) Ten post edytował bpskiba 24.06.2013, 18:17:00 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 06:31 |