Hallo,
Ich habe zwei Tabellen die ich miteinander vergleichen muss und benutze das erste mal JOIN also bitte habt Rücksicht
wenn ich vielleicht etwas unqualifizierte fragen stelle.
Tabelle1
Column1 Agent = Name des Agenten kann es mehrere geben sollen auch doppelt angezeigt werden
Column2 Telefonnummer = Telefonnummer ist eine aus der Tabelle1 die einem Agenten zugeordnet wurde
Tabelle2
Column1 Device = Telefonnummern können doppelt sein allerdings sollen nicht angezeigt werden
Column2 TSTAMP = Datum Format 2006-01-16 07:59:25.000 hab ich vorher schon abgeschnitten auf 2006-01-16 07:59:25
Column3 Zeit = Anzahl Sekunden
ich habe nun ein Query mit Join erstellt (JOIN wurde oft empfohlen wg perf.). Damit werden alle Telefonnummern (DEVICE) aus Tabelle1 gesucht.
Alle doppelten wurden dabei entfernt zusätzlich hab ich das Ergebnis dem Agenten zugeordnet. Soweit so gut.
Jetzt wollte ich allerdings noch das Datum aus Tabelle2 eingrenzen, das bedeutet man bestimmt ein Anfangsdatum und ein Enddatum und bekomme nur die Telefonnummern und Agenten angezeigt,
die zwischen den beiden Datumsangaben liegen
Dazu hatte ich folgendes Script benutzt:
ging nicht!
ich habe nun folgende Abfragen separat erarbeitet die auch für sich separat ohne fehler funktionieren.
für die Abfrage nur die Daten im Zeitraum von bis
und
Für die Ausgabe Telefonnummern zugeordnet zu den Agenten
Ich bekommen leider die Abfragen nicht kombiniert sodas etwas brauchbare heraus kommt.
Kann mir da jetzt einer weiter helfen.
ich hab es schon mit
versucht bekomme immer folgenden Fehler
The column 'DEVICE' was specified multiple times for 'T3'., SQL state 37000 womit ich immoment nicht fiel anfangen kann!
Bitte um Hilfe!
Gruss rst
Ich habe zwei Tabellen die ich miteinander vergleichen muss und benutze das erste mal JOIN also bitte habt Rücksicht
wenn ich vielleicht etwas unqualifizierte fragen stelle.
Tabelle1
Column1 Agent = Name des Agenten kann es mehrere geben sollen auch doppelt angezeigt werden
Column2 Telefonnummer = Telefonnummer ist eine aus der Tabelle1 die einem Agenten zugeordnet wurde
Tabelle2
Column1 Device = Telefonnummern können doppelt sein allerdings sollen nicht angezeigt werden
Column2 TSTAMP = Datum Format 2006-01-16 07:59:25.000 hab ich vorher schon abgeschnitten auf 2006-01-16 07:59:25
Column3 Zeit = Anzahl Sekunden
ich habe nun ein Query mit Join erstellt (JOIN wurde oft empfohlen wg perf.). Damit werden alle Telefonnummern (DEVICE) aus Tabelle1 gesucht.
Alle doppelten wurden dabei entfernt zusätzlich hab ich das Ergebnis dem Agenten zugeordnet. Soweit so gut.
Jetzt wollte ich allerdings noch das Datum aus Tabelle2 eingrenzen, das bedeutet man bestimmt ein Anfangsdatum und ein Enddatum und bekomme nur die Telefonnummern und Agenten angezeigt,
die zwischen den beiden Datumsangaben liegen
Dazu hatte ich folgendes Script benutzt:
PHP-Code:
$var_Query = "SELECT DISTINCT T2.DEVICE, T1.* from Tabelle2 as T2 LEFT JOIN Tabelle1 as T1 On T2.DEVICE = T1.Telefonnummer where (T2.DEVICE = T1.Telefonnummer) or (T1.Telefonnummer IS NULL) and (T2.TSTAMP >= '$sdatum') AND (T2.TSTAMP = '$edatum') ORDER BY T1.Gewerk DESC";
ich habe nun folgende Abfragen separat erarbeitet die auch für sich separat ohne fehler funktionieren.
für die Abfrage nur die Daten im Zeitraum von bis
PHP-Code:
$var_Query = " SELECT DISTINCT T4.DEVICE, T4.TSTAMP from Tabell2 as T4 where (T4.TSTAMP >= '$sdatum') and (T4.TSTAMP <= '$edatum')";
Für die Ausgabe Telefonnummern zugeordnet zu den Agenten
PHP-Code:
$var_Query = "SELECT DISTINCT T2.DEVICE, T1.* from Tabell2 as T2 LEFT JOIN Tabelle1 as T1 On T2.DEVICE = T1.Telefonnummer where (T2.DEVICE = T1.Telefonnummer) or (T1.Telefonnummer IS NULL) ORDER BY T1.Gewerk DESC";
Ich bekommen leider die Abfragen nicht kombiniert sodas etwas brauchbare heraus kommt.
Kann mir da jetzt einer weiter helfen.
ich hab es schon mit
PHP-Code:
$var_Query = "SELECT T3.TSTAMP, T5.TSTAMP from";
$var_Query .= " (SELECT DISTINCT T2.DEVICE, T1.* from Tabell2 as T2 LEFT JOIN Tabell1 as T1 On T2.DEVICE = T1.Telefonnummer where (T2.DEVICE = T1.Telefonnummer) or (T1.Telefonnummer IS NULL)) as T3";
$var_Query .= " (SELECT DISTINCT T4.DEVICE, T4.TSTAMP from Tabell2 as T4 where (T4.TSTAMP >= '$sdatum') and (T4.TSTAMP <= '$edatum')) as T5";
$var_Query .= " where T3.TSTAMP = T5.TSTAMP";
The column 'DEVICE' was specified multiple times for 'T3'., SQL state 37000 womit ich immoment nicht fiel anfangen kann!
Bitte um Hilfe!
Gruss rst
Kommentar