MySql 2 Tabellen zusammen fügen, Bereiche Addieren

sop82

Grünschnabel
Hallo,

ich verzweifele. Ich habe 2 Tabellen in der gleichen MySql db (Version aktuell)

1.Tabelle
id / mitarbeiter / filiale

2. Tabelle
id / mitarbeiter / kommission / company / model / farbe / sobri / einbrille / mehrbrille / oberflaeche / material / total

In der 1. Tabelle stehen Mitarbeiternamen und die Zuordnung zur Arbeitsstelle
(z.B. 103 / Hans Mustermann / Frankfurt)

In der 2. Tabelle stehen die assoziierten Daten.
3 / 103 / 082763 / Safilo / EA9541S / D28 / 1 / 1 / 0 / 1 / 0 / 3 /

Total ist die Summe des Datensatzes die schon beim Insert berechnet und eingefügt wurde.

Jetzt möchte ich eine Ausgabe haben, die:
Auflistung aller Mitarbeiter (Tabelle 1) mit den dazugehörigen Summen aus (sobri / einbrille / mehrbrille / oberflaeche / material ) die nach Total sortiert wird.
Jeder Name darf nur 1 mal auftauchen.

Ich wäre dir sehr dankbar, für deine Hilfe
 
SQL:
SELECT
	t1.id,
	t1.mitarbeiter,
	t1.filiale,
	SUM(t2.sobri) AS sum_sobri,
	SUM(t2.einbrille) AS sum_einbrille,
	SUM(t2.mehrbrille) AS sum_mehrbrille,
	SUM(t2.oberflaeche) AS sum_oberflaeche,
	SUM(t2.material) AS sum_material	
FROM
	tabelle1 AS t1,
	INNER JOIN tabelle2 AS t2
		ON t1.mitarbeiter = t2.mitarbeiter
GROUP BY 
	t1.id,
	t1.mitarbeiter,
	t1.filiale
ORDER BY SUM(t2.total)
 
Zuletzt bearbeitet von einem Moderator:
Hi,
danke für deinen Code.

bitte gebe mir noch die Hilfe wie ich dieses ausgeben kann.
mit einem normalen
Code:
$anfrage = "SELECT
    t1.id,
    t1.mitarbeiter,
    t1.filiale,
    SUM(t2.sobri) AS sum_sobri,
    SUM(t2.einbrille) AS sum_einbrille,
    SUM(t2.mehrbrille) AS sum_mehrbrille,
    SUM(t2.oberflaeche) AS sum_oberflaeche,
    SUM(t2.material) AS sum_material    
FROM
    tabelle1 AS t1,
    INNER JOIN tabelle2 AS t2
        ON t1.mitarbeiter = t2.mitarbeiter
GROUP BY 
    t1.id,
    t1.mitarbeiter,
    t1.filiale
ORDER BY SUM(t2.total)";
  $ergebnis = mysql_query($anfrage);
          $i= "1";
        while($zeile = mysql_fetch_array($ergebnis)){
		echo mysql_error();

klappt dies nicht?! und weiß nicht warum

Danke dir
 
Prüfe doch mal das Query im phpMyAdmin:
PHP MySQL Debug Queries

Gibt es Fehlermeldungen? Ist kommt nix zurück?

und warum hast du innerhalb der Zeile die Ausgabe des mysql_error()? Wenn ein Fehler besteht, dann kommt er nie bis dahin...
 
hi

meine Feldermeldung ist folgende:
Code:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result
 resource in R:\xampp\htdocs\sopcl\wettbewerb_mitarbeiter.php on line 52

Der Code in der zeile 52 ist folgender
Code:
  while($zeile = mysql_fetch_array($ergebnis)){

Ich hab mir die error Ausgabe eingebaut damit ich gff. Meldungen auf den Bildschirm
bekomme, fand ich etwas einfacher für mich.

In PHPmyAdmin bekomme ich folgende Fehlermeldung:
Code:
#1064 - You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL server 
version for the right syntax to use near 'INNER JOIN 
tabelle2 AS t2 ON t1.mitarbeiter = t2.mitarbeiter 
GROUP BY ' at line 12
 
oh, jetzt seh ich mein Fehler. im FROM-Teil sollte anch dem t1 kein Komma sein.
Aber wenn du dich mal mit dem dir anscheinend unbekannten Befehl INNER JOIN auseinandergesetzt hättest, würdest du es selber sehen.
Ich empfehle dir dringend alles an meinem SQL zu hinterfragen, weil:
1) ich nix getestet habe
2) du dann auch etwas lernst
 
danke dir,
bin jetzt seit einem Jahr so nebenbei php und Mysql zu lernen
und verstehe alles noch nicht.

Ich hab den Code jetzt ein paar mal in phpmyadmin eingeben und den code solange verändert bis keine Fehlermeldungen auftragen.

PHP:
SELECT
    t1.id,
    t1.mitarbeiter,
    t1.filiale,
    SUM(t2.sobri) AS sum_sobri,
    SUM(t2.einbrille) AS sum_einbrille,
    SUM(t2.mehrbrille) AS sum_mehrbrille,
    SUM(t2.oberflaeche) AS sum_oberflaeche,
    SUM(t2.material) AS sum_material    
FROM
    mitarbeiter AS t1
    INNER JOIN w_sobri_2011 AS t2
        ON t1.mitarbeiter = t2.mitarbeiter
GROUP BY 
    t1.id,
    t1.mitarbeiter,
    t1.filiale
ORDER BY SUM(t2.total)

Das Ergebnis ist 0 Datensätze
ich habe Tabelle1 und Tabelle2 mit den Namen der Tabellen ersetzt. Danach kam keine Fehlermeldung mehr und es ist durchgelaufen.
Hast du noch eine Idee****
 
Das heisst eigentlich, dass du keine mitarbeiter hast die in beiden Tabellen Einträge haben.
Ist das Feld mitarbeiter in ebiden Tabellen vom gleichen Typ?
Ich sehe gerade, bei dem INNER JOIN müsstest du wahrscheinlich die Verknüpfung auf t1.id und nicht t1.mitarbeiter machen. Halt einfach auf die Felder welche die Beziehung herstellen
 
Zurück