0

2 つの異なるテーブルから php の 2 つの日付間の平均時間を選択しようとしています。

私はこれを持っています:

$sql="select *, avg(end_date - start_date) as avg_days from tickets where deleted = '' and DAY(datetime) = '04' and MONTH(datetime) = '".date("m")."' and YEAR(datetime) = '".date("Y")."' group by assigned_to";

しかし、テーブルの列とテーブルのdatetime列から平均「応答」時間を計算できるようにしたいと考えています。ticketsstartdateticket_updates

ticket_seqテーブル内はテーブル内の列とticket_updatesリンクしているため、テーブルから選択した行にリンクするテーブルから作成された最初の行を選択する必要がありますticketnumberticketsticket_updatestickets

私が試してみました:

$sql="select tickets.*, avg(tickets.datetime - ticket_updates.timestart) as avg_days from tickets, ticket_updates where tickets.ticketnumber = ticket_updates.ticket_seq and deleted = '' and DAY(datetime) = '04' and MONTH(datetime) = '".date("m")."' and YEAR(datetime) = '".date("Y")."' group by assigned_to";

しかし、何も返されず、mysqlで実行すると次のようになります:

 #1052 - Column 'datetime' in where clause is ambiguous
4

1 に答える 1

0

このクエリを使用して問題を解決できました。

$sql="
SELECT 
    tickets.*, 
    avg(tickets.datetime - ticket_updates.timestart) as avg_days 
FROM 
    tickets, ticket_updates 
WHERE 
    tickets.ticketnumber = ticket_updates.ticket_seq 
AND deleted = '' 
AND DAY(tickets.datetime) = '04' 
AND MONTH(tickets.datetime) = '".date("m")."' 
AND YEAR(tickets.datetime) = '".date("Y")."' 
GROUP BY 
    tickets.assigned_to
";
于 2013-09-10T00:03:19.337 に答える