MySQL - 无法创建内部包含 SET 变量的 View

标签 mysql sql

我正在尝试创建一个内部包含 SET @rank = 0; 的 View ,但它给了我错误。一直在尝试不同的事情,但它不起作用。谁能指出我正确的方向吗?

CREATE VIEW S1_Bottom_Performer_AHT as (
SET @rank=0
SELECT @rank := @rank+1 AS '#',
                ei.SM,
                ei.TM,
                es.Month_Date,
                ei.emp_id,
                ei.DNAME,
                ei.STATUS,
                ei.SHIFT,
                ei.SKILL,
                ei.HIRE_DATE,
                ifnull(TIMESTAMPDIFF(MONTH, ei.HIRE_DATE, now()), '-') AS Tenure,
                ifnull(es.Call_Handled, '-') AS Call_Handled,
                ifnull(es.AHT, '-') AS AHT
FROM mtl_extended_info ei
LEFT OUTER JOIN
  ( SELECT es.Employee_ID,
           es.Month_Date,
           sum(es.Calls_Handled_Ct) AS Call_Handled,
           round((sum(es.I_Talk_Time_Sec) + sum(es.Hold_Time_Sec) + sum(es.I_Work_Time_Sec) + sum(es.I_AUX_Out_Time_Sec)) / sum(es.Calls_Handled_Ct)) AS AHT
   FROM cdl_agent_call_voume_gen es
   WHERE es.Month_Date = '2013-09-01'
   GROUP BY es.Employee_ID,
            es.Month_Date ) es ON es.Employee_ID = ei.emp_id
WHERE es.Month_Date = '2013-09-01'
  AND ei.Visible = 1
  AND ei.SKILL != 'RSD'
GROUP BY ei.emp_id
ORDER BY es.AHT DESC LIMIT 80);

错误消息:

#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 'SET @rank=0
SELECT @rank := @rank+1 AS '#',
                ei.SM,
          ' at line 2 

最佳答案

我认为你不能这样做。

来自MYSQL guidelines :

A view definition is subject to the following restrictions:

[ deletia ]

The SELECT statement cannot refer to system or user variables.

关于MySQL - 无法创建内部包含 SET 变量的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49529322/

相关文章:

mysql - mariadb 按用户函数排序给出了错误的结果

mysql - 为什么我不能运行这个查询?

mysql - 定期向 sql 表中添加列的好方法

mysql - 使用经典asp在mysql数据库中输入日期

php - 手动插入子表时出现foreign key constraints fails错误如何解决?

sql - SQL弱关联表字段映射

sql - 使用绑定(bind)和空值命中 Oracle 索引的最佳查询

mysql - 如何修复 mySQL 中的错误,ERROR 1146 (42S02)

c# - MySql 上的 Entity Framework 4.4.0 代码优先迁移不断将 dbo 添加到新表

sql - 奇怪的 NOT IN 运算符行为