当前位置: 首页 > 知识库问答 >
问题:

SQL-整数值不正确

常鸿朗
2023-03-14

我目前正在做一个Airflow项目,其中一个DAG正在触发这个SQL查询:

select CONVERT(date, GETDATE()) as datum,
    sum(convert(int, fertig))/convert(float, count(*)) as servicegrad,
    count(*) as position, 
    sum(Anzahl) as positionsdetails, 
    sum(convert(int, fertig)) as fertig, CASE
        WHEN (Empfänger LIKE '%empfänger1%' or 
            Empfänger LIKE '%empfänger2%' or 
            Empfänger LIKE '%empfänger3%' or 
            Empfänger LIKE '%empfänger4%' or 
            Empfänger LIKE '%empfänger5%') THEN 'lager1'
        WHEN (Empfänger LIKE '%empfänger6%' or Empfänger LIKE '%empfänger7%' or  
        Empfänger LIKE '%empfänger8%' or Empfänger LIKE '%9%') THEN 'lager2'
        WHEN (Empfänger LIKE N'%empfänger10%' or
        Empfänger LIKE '%empfänger11%' or 
        Empfänger LIKE '%empfänger11%' or 
        Empfänger LIKE '%empfänger12%' or 
        Empfänger LIKE '%empfänger13%') THEN 'Lager3'


        ELSE 'lager4' 
    END as typ from wa left join (
        select count(*) as Anzahl, WaID from wadetails 
        group by WaID
    ) as wad on wad.WaID = wa.ID
where (CONVERT(DATE, ABTermin) > CONVERT(date,DATEADD(day, -1,GETDATE())) 
and
CONVERT(DATE, ABTermin) < CONVERT(date,DATEADD(day, 1,GETDATE())))
group by 
    CASE
        WHEN (Empfänger LIKE '%empfänger1%' or 
            Empfänger LIKE '%empfänger2%' or 
            Empfänger LIKE '%empfänger3%' or 
            Empfänger LIKE '%empfänger4%' or 
            Empfänger LIKE '%empfänger5%') THEN 'lager1'
        WHEN (Empfänger LIKE '%empfänger6%' or Empfänger LIKE '%empfänger7%' or  
        Empfänger LIKE '%empfänger8%' or Empfänger LIKE '%9%') THEN 'lager2'
        WHEN (Empfänger LIKE N'%empfänger10%' or
        Empfänger LIKE '%empfänger11%' or 
        Empfänger LIKE '%empfänger11%' or 
        Empfänger LIKE '%empfänger12%' or 
        Empfänger LIKE '%empfänger13%') THEN 'Lager3'


        ELSE 'lager4'
    END

该查询应该将数据从Mssql数据库传输到Mysql数据库。但当它运行时,我会得到以下错误:

_mysql_exceptions.OperationalError: (1366, "Incorrect integer value: 'lager4' for column 'fertig' at row 1")

我想我理解错误的含义,值'Lager4'应该写入列typ中,但被写入列fertig中。但我似乎无法在查询中找到导致错误的问题。

共有1个答案

梁成双
2023-03-14

这不能回答你的问题,但它会提示你去哪里看。

如果您得到一个MySQL错误,那么代码在SQL Server中运行良好。然而,问题是您将这些值插入到MySQL中。

令人高兴的是,这仅仅意味着您需要查看select子句。您需要查看MySQL中列的类型,并确定哪些列是ints。

那么,转换就有问题了。可能性有:

  • 数据
  • 费尔蒂格
  • Anzal
  • 类型

当您知道这些列中哪些是整数时,您可以进一步研究。

 类似资料:
  • 问题内容: 我正在尝试插入我的MySQL数据库。第一列是“ id”列,因为它是一个auto_increment字段,所以我将其留为空白。由于某些原因,我无法插入,并且出现了下面提到的错误。我对此表示感谢。 尝试插入时出现以下错误: 我的查询 问题答案: 这可能意味着您是一个整数,并且您正在尝试发送字符串。您应该指定一个列列表,并从中删除它。

  • 问题内容: 我需要获取一个包含前N个正整数的结果集。是否可以仅使用标准SQL SELECT语句来获取它们(不提供任何计数表)? 如果不可能,是否有任何特定的MySQL方法来实现? 问题答案: 似乎您想要的是一个。 在中,没有表是不可能的。 大多数主要系统都提供了一种实现方法: 在: FROM dual CONNECT BY level <= 10 在: SELECT * FROM q 在: FRO

  • 我做了一个触发器来验证两列,当其中只有一列错误时,它会正常显示消息,当两列都错误时,我会得到错误 错误代码:1292。截断不正确的INTEGER值:" 我相信是在Concat部分,我是不是错过了什么功能?

  • 我正在制作一个使用tableView的程序。一切都进行得很顺利,只是由于某些原因,我无法获得要填充到表中的整数值。下面是我在主程序中的代码,当我运行程序时,字符串和Double填充,但整数没有。在我的产品类中,sku是int。不太确定哪里出了问题,寻找一些洞察力! 这里是发票对象和添加产品。

  • 我的邮递员运行示例JSON文件: 预先请求脚本: 带参数的主体: 对于仅接受字符串变量 - name 和布尔字段正常工作,并且为其他两个字段填充值,则不传递变量值。

  • 该方法通过用户的输入获取给定数据集中的两个最大整数,并计算它们的乘积。它对每个输入都很有效,直到我尝试了两个整数和的数组,它返回。 这是我的Java方法: 这是我的方法: