MySQL View的自动增量序列号

时间:2017-03-23 14:45:53

标签: mysql sql auto-increment serial-number

我的项目有问题需要为我的MySQL视图插入一个自动增量值,如果你们帮助解决这个障碍我会很高兴,这里是我想拥有自动增量序列号的代码(比如S .No)作为第一栏。

    CREATE 
    ALGORITHM = UNDEFINED 
    DEFINER = `srems_admin`@`localhost` 
    SQL SECURITY DEFINER
VIEW `emp_elec_consumption_view` AS
    SELECT 
        `t1`.`PFNUMBER` AS `PFNUMBER`,
        `emp`.`EMPNAME` AS `EMPNAME`,
        `t1`.`MonthAndYear` AS `MonthAndYear`,
        `qt`.`QTRSCODE` AS `QTRSCODE`,
        `t1`.`UNITS_CONSUMED` AS `UNITS_CONSUMED`,
        (`t2`.`FIXED_COMPONENT` + (`t1`.`UNITS_CONSUMED` * `t2`.`RATE_COMPONENT`)) AS `Amount`
    FROM
        (((`srems`.`mstqtroccu` `qt`
        JOIN `srems`.`mstemp` `emp`)
        JOIN `srems`.`msttariffrate` `t2`)
        JOIN (SELECT 
            `srems`.`tranmeterreading`.`PFNUMBER` AS `PFNUMBER`,
                (`srems`.`tranmeterreading`.`CLOSINGREADING` - `srems`.`tranmeterreading`.`OPENINGREADING`) AS `UNITS_CONSUMED`,
                CONCAT(CONVERT( IF((LENGTH(MONTH(`srems`.`tranmeterreading`.`READINGDATE`)) > 1), MONTH(`srems`.`tranmeterreading`.`READINGDATE`), CONCAT('0', MONTH(`srems`.`tranmeterreading`.`READINGDATE`))) USING UTF8), '/', RIGHT(YEAR(`srems`.`tranmeterreading`.`READINGDATE`), 2)) AS `MonthAndYear`,
                (SELECT 
                        `t`.`TRANSACTIONID`
                    FROM
                        `srems`.`msttariffrate` `t`
                    WHERE
                        (`t`.`TORANGE` > (`srems`.`tranmeterreading`.`CLOSINGREADING` - `srems`.`tranmeterreading`.`OPENINGREADING`))
                    LIMIT 1) AS `tariffplanid`
        FROM
            `srems`.`tranmeterreading`) `t1`)
    WHERE
        ((`t1`.`tariffplanid` = `t2`.`TRANSACTIONID`)
            AND (`t1`.`PFNUMBER` = `qt`.`PFNUMBER`)
            AND (`t1`.`PFNUMBER` = `emp`.`PFNUMBER`))

请将东西插入正确的位置并将其作为注释发布以获得S.No,它应该是从1开始的自动增量,并且它应该是第一列,提前ty

1 个答案:

答案 0 :(得分:0)

你的观点无论如何都无法在MySQL工作,所以你可能会放弃。

MySQL不允许FROM子句中的子查询。而且你的查询非常复杂,有很多子查询。

它也不允许变量,因此获取行号相当复杂。