Mysql 在SQL中运行票证计数器
我试图将一个运行计数器作为第一列,以便轻松查看分配给代理的票证数量。数字仿真器可以工作,但它不会提高代理的票证号,而是计算票证日期。我目前的代码是:Mysql 在SQL中运行票证计数器,mysql,sql,Mysql,Sql,我试图将一个运行计数器作为第一列,以便轻松查看分配给代理的票证数量。数字仿真器可以工作,但它不会提高代理的票证号,而是计算票证日期。我目前的代码是: Set @row_num = 0; SELECT @row_num := @row_num + 1 as row_number , s.firstname , s.lastname , t.number , ts.name AS status , o.name, t.created FROM o
Set @row_num = 0;
SELECT @row_num := @row_num + 1 as row_number
, s.firstname
, s.lastname
, t.number
, ts.name AS status
, o.name, t.created
FROM ost_ticket t
JOIN ost_ticket_status ts ON t.status_id = ts.id
JOIN ost_staff s ON t.staff_id = s.staff_id
JOIN ost_user u ON t.user_id = u.id
JOIN ost_organization o ON u.org_id = o.id
JOIN (SELECT @row_num:= 0) N
WHERE s.staff_id IN (27,35,43,45)
AND t.created >= CURDATE() - INTERVAL 7 DAY
ORDER BY s.lastname
我怎样才能最好地更改代理的1、2、3,然后为新代理重置?您需要一个不同的变量来跟踪代理的更改时间
SET @row_num := 0;
SET @agent :='';
SELECT
@row_number := IIF(@agent = s.firstname + s.lastname,
@row_number + 1, 1
) AS row_number,
@agent := s.firstname + s.lastname AS agent,
s.firstname,
s.lastname,
t.number,
ts.name AS status,
o.name,
t.created
FROM ost_ticket t
JOIN ost_ticket_status ts ON t.status_id = ts.id
JOIN ost_staff s ON t.staff_id = s.staff_id
JOIN ost_user u ON t.user_id = u.id
JOIN ost_organization o ON u.org_id = o.id
WHERE s.staff_id IN (27,35,43,45)
AND t.created >= CURDATE() - INTERVAL 7 DAY
ORDER BY s.lastname
为什么要
设置@row\u num=0
和JOIN(SELECT@row_num:=0)N
您只需要其中一种,这在我所知道的任何版本的SQL Server中都不是合法的语法,因为1)您不能在SELECT语句中混合变量赋值和数据返回,2):=
不是T-SQL中变量赋值的语法。你真正的查询和/或真正的DBMS是什么?当我看到:=
时,我在想mysql,读了mustaccio后,我的答案是我意识到了sql server标记。对不起,这是mysql。我误点击了标签