phpbar.de logo

Mailinglisten-Archive

Problem mit Kreuztabelle / JOIN

Problem mit Kreuztabelle / JOIN

Andre Krajnik andre at krajnik.de
Sam Jul 29 20:42:20 CEST 2006


Hi.

ich benötige Hilfe bei einer Kreuzabelle.

ICh möchte eine Report erzeugen, welche Software auf bestimmten PCs
installiert ist. Dafür soll für jede Software, die auf einem PC
isntalliert ist ein X gemacht werden. zudem am Zeilenende eine Summierung.
Die Summierung klappt auch, aber von den "X" kommt immer nur eines pro
Zeile. warum?

select s.Software,
if (t.PC = "anke", "X", "") AS Anke,
if (t.PC = "buchhaltung", "X", "") as Buchhaltung,
if (t.PC = "empfang", "X", "") as Empfang,
if (t.PC = "ernaehrung", "X", "") as Ernaehrung,
if (t.PC = "team", 1, "") as Team,
count(*) as Summe
from tsms t INNER join Software s using(swid) Group by Software;

mysql> describe tsms;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| PC       | varchar(12) | YES  |     | NULL    |       |
| Software | varchar(50) | YES  |     | NULL    |       |
| Version  | varchar(20) | YES  |     | NULL    |       |
| Size     | varchar(12) | YES  |     | NULL    |       |
| swid     | int(11)     |      |     | 0       |       |
+----------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

mysql> describe Software;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| Software | varchar(50) |      |     |         |       |
| swid     | int(11)     |      | PRI | 0       |       |
+----------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive