小小少年QAQ 2023-07-20 11:30 采纳率: 31.6%
浏览 10

适配kingbase

如何将以下mysql语法修改成kingbase8语法,希望给予解答


     SELECT
        date_format(t1.DAY,'%Y-%m-%d') date,
        IFNULL(t2.number, 0) AS number
        FROM
        (
        SELECT
        date_format(@cdate := DATE_ADD(@cdate, INTERVAL - 1 DAY),'%Y-%m-%d') DAY
        FROM
        (
        SELECT
        @cdate := DATE_ADD('2019-07-07', INTERVAL + 1 DAY)
        FROM
        animal_list
        ) t0
        ) t1
        LEFT JOIN (
        SELECT
        sum(number) number,
        date_format(aet.detection_time,'%Y-%m-%d') DAY
        FROM
        animal_event_tag aet
        left join animal_event_index aei on aet.event_id=aei.id
        where 1=1
        and aet.detection_time between '2019-07-07 10:39:45' and '2023-07-07 10:39:45'
                 and aet.dept_id in('YBbyEr','4195bacc64614089ba98ff75d2482fbb')
                   GROUP BY
        DATE(aet.detection_time)
        ) t2 ON t1. DAY = t2. DAY
        where t1.DAY BETWEEN '2019-07-07' and '2023-07-07'
        ORDER BY
        t1.DAY asc            

  • 写回答

2条回答 默认 最新

  • 追光者♂ 人工智能领域优质创作者 2023-07-20 12:46
    关注

    可以看一下:
    下边是将MySQL语法修改为Kingbase8语法的查询:

    SELECT
        to_char(t1.DAY, 'YYYY-MM-DD') AS date,
        COALESCE(t2.number, 0) AS number
    FROM
        (
        SELECT
            to_char(@cdate := DATEADD('DAY', -1, @cdate), 'YYYY-MM-DD') AS DAY
        FROM
            (
            SELECT
                @cdate := DATEADD('DAY', 1, '2019-07-07') AS dummy
            FROM
                animal_list
            ) t0
        ) t1
    LEFT JOIN
        (
        SELECT
            sum(number) AS number,
            to_char(aet.detection_time, 'YYYY-MM-DD') AS DAY
        FROM
            animal_event_tag aet
        LEFT JOIN
            animal_event_index aei ON aet.event_id = aei.id
        WHERE
            aet.detection_time BETWEEN '2019-07-07 10:39:45' AND '2023-07-07 10:39:45'
            AND aet.dept_id IN ('YBbyEr','4195bacc64614089ba98ff75d2482fbb')
        GROUP BY
            to_date(aet.detection_time, 'YYYY-MM-DD')
        ) t2 ON t1.DAY = t2.DAY
    WHERE
        t1.DAY BETWEEN '2019-07-07' AND '2023-07-07'
    ORDER BY
        t1.DAY ASC;
    
    评论

报告相同问题?

问题事件

  • 创建了问题 7月20日

悬赏问题

  • ¥15 如何入门学习c语言,单片机
  • ¥15 idea 编辑语言的选择
  • ¥15 Windows下部署Asmjit
  • ¥15 请问双层规划模型的上下层目标函数不一致,是如何保证迭代收敛性的
  • ¥15 微信小程序 前端页面内容搜索
  • ¥15 cpu是如何判断当前指令已经执行完毕,然后去执行下条指令的
  • ¥15 安装visual studio2022时visualstudiosetup启动不了,闪退。问题代号0x0和0x1389
  • ¥30 java spring boot2.5.3版本websocket连不上
  • ¥15 angular js调外部链接查看pdf
  • ¥15 openFOAM DPMFoam