Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Kwerenda krzyżowa z jednej tabeli
ze4lot
post
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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
bpskiba
post
Post #2





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
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 14.10.2025 - 22:20