2017-09-12 9 views
0

Ich versuche, den Durchschnitt von "Sekunden" aus der folgenden Abfrage zu finden. Ich erhalte den Fehler "Mehrdeutige Spaltenreferenz date_time in t".Mehrdeutige Spaltenreferenz in Bienenstock

Ich bin nicht sicher, wie es gelöst werden soll. Irgendwelche Vorschläge wären großartig !!

select dayname(tc.date_time), sum(seconds) from (
    select td.visid, td.visid1, td.num, concat(td.visid, td.visid1, td.num) as session,td.date_time, tc.date_time, 
    second(tc.date_time) - second(td.date_time) as seconds 
    from tb1 as td 
    join tb2 as tc 
    on td.visid = tc.visid and td.visid1 = tc.visid1 and td.num = tc.num and 
    td.name = 'Detail' and tc.name = 'Confirm' 
    where td.date_time between "2017-05-01 00:00:00" and "2017-07-31 00:00:00") as t 
    group by dayname(tc.date_time); 
+0

td.date_time und tc.date_time werden beide als Spalten mit dem Namen "date_time" aufgelistet. Sie müssen sie "wie" auswählen (genau wie bei der Sitzung) – Aaron

Antwort

0

Der gleiche Spaltenname date_time in beiden Tabellen erzeugt ein Problem. Geben Sie Alias ​​für beide Spalten an. Das wird dein Problem lösen.

select dayname(t.a), sum(t.seconds) from (
    select td.visid, td.visid1, td.num, concat(td.visid, td.visid1, td.num) as session,td.date_time as d, tc.date_time as a, 
    second(tc.date_time) - second(td.date_time) as seconds 
    from tb1 as td 
    join tb2 as tc 
    on td.visid = tc.visid and td.visid1 = tc.visid1 and td.num = tc.num and 
    td.name = 'Detail' and tc.name = 'Confirm' 
    where td.date_time between "2017-05-01 00:00:00" and "2017-07-31 00:00:00") as t 
    group by dayname(t.a);