Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak połączyć kolumny z tej samej tabeli i jak zgrupować je stosując GROUP BY
teom
post 24.10.2006, 12:23:53
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 24.10.2006

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


Mam tabelę "kody".

-------------------------
|a1|a2|b1|b2|c1|c2 |
-------------------------
|2 |aa |2 |aa |2 |bb |
|2 |aa |2 |bb |4 |bb |
|2 |gg |3 |bb |4 |bb |
|5 |gg |4 |gg |4 |gg |
-------------------------

Chcę teraz połączyć kolumny w pionie a1 z b1 i c1 oraz a2 z b2 i c2 (tak jak poniżej)

----------
|a1 | a2 |
----------
| 2 | aa |
| 2 | aa |
| 2 | gg |
| 5 | gg |
----------
|b1 | b2 |
----------
| 2 | aa |
| 2 | bb |
| 3 | bb |
| 4 | gg |
----------
|c1 | c2 |
----------
| 2 | bb |
| 4 | bb |
| 4 | bb |
| 4 | gg |
----------


i obliczyć ile jest w drugiej kolumnie kodów aa, bb i gg. Warunek jest taki, że interesują mnie tylko te wartości z drugiej kolumny, które mają w pierwszej kolumnie wartość "2". Wynik więc powinien wyglądać tak:

aa jest 3
bb jest 2
gg jest 1

Wiem, że trzeba zastosować ALIASY kolumn i polecenie GROUP BY. Za nic jednak nie mogę uzyskać takiego wyniku.

Proszę was o wsparcie.

Ten post edytował teom 24.10.2006, 13:27:58
Go to the top of the page
+Quote Post
Sh4dow
post 24.10.2006, 13:11:30
Post #2





Grupa: Zarejestrowani
Postów: 569
Pomógł: 0
Dołączył: 17.08.2003
Skąd: Dąbrowa Górnicza

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


zalezy ci na elastycznosci ? wydajnosci ? czy poprostu na rozwiazaniu ? bo szczerze mowiac to niezle pokiełasione to jest.
Cytat
Chcę teraz połączyć kolumny w pionie a1 z b1 i c1 oraz a2 z b2 i c2 (tak jak poniżej)

a ponizej pokazyjesz 3 a nie jak napisałes 2 tablice. Wiec moze by tak ujednolicic tresc posta, to moze cos wymyslimy.

A jak chcesz sprawdzac ile jest rekordow danej wartosci to zrob 3 zapytania i zsumuj sobie te wartosci i bedziesz mial


--------------------
Warsztat: Linux: PHP, MySQL, Apache, NetBeans, C++, Qt-Creator
Użytkownik, słowo którego specjaliści IT używają, gdy chcą powiedzieć idiota
Zarządzaj swoim budżetem domowym
Go to the top of the page
+Quote Post
teom
post 24.10.2006, 13:36:13
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 24.10.2006

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


Tabela "kody" zawiera 6 kolumn i a1, a2, b1, b2, c1, c2. Chcę ją teraz przekształcić (na czas zapytania mysql), tak aby pogrupować wartości z kolumn a2, b2, c2 pod warunkiem, że w kolumnie a1, b1, c1 znajduje się wartość 2.

Nie wiem jak prościej mogę to wytłumaczyć.

Zależy mi na szybkości działania i wiem, że da się to zrobić w jednym zapytaniu.
Go to the top of the page
+Quote Post
Wykrywacz
post 24.10.2006, 14:47:52
Post #4





Grupa: Zarejestrowani
Postów: 726
Pomógł: 20
Dołączył: 8.12.2005
Skąd: Wrocław

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


Jak już napisałem ci w crospotowanym temacie, użyj SUM i Count.
I to powinno wystarczyć ew. to zagnieźć.

A ty też powtórze, że wygląda mi to na zadanie domowe. A tych że o ile wiem nie rozwiązuje się za kogoś

Ten post edytował Wykrywacz 24.10.2006, 14:53:03
Go to the top of the page
+Quote Post
Sh4dow
post 24.10.2006, 14:59:39
Post #5





Grupa: Zarejestrowani
Postów: 569
Pomógł: 0
Dołączył: 17.08.2003
Skąd: Dąbrowa Górnicza

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


  1. SELECT COUNT(a2) AS ile, a2 FROM kody GROUP BY a2 UNION
  2. SELECT COUNT(b2) AS ile, b2 FROM kody GROUP BY b2 UNION
  3. SELECT COUNT(c2) AS ile, c2 FROM kody GROUP BY c2


W jednym zapytaniu nie wiem jak polaczyc sumy, ale mozesz probowac po tym zapytaniu sumowac, albo wpisac to do jednej tablicy a pozniej sumowac


--------------------
Warsztat: Linux: PHP, MySQL, Apache, NetBeans, C++, Qt-Creator
Użytkownik, słowo którego specjaliści IT używają, gdy chcą powiedzieć idiota
Zarządzaj swoim budżetem domowym
Go to the top of the page
+Quote Post
teom
post 24.10.2006, 15:33:26
Post #6





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 24.10.2006

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


Chyba innego sposobu nie ma - dzięki serdeczne Sh4dow.

"Wykrywacz" - zadania skończyłem odrabiać 10 lat temu, na studiach. Teraz uczę się php i MySql stąd moje pytanie na tym forum.
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: 19.06.2025 - 23:22