我目前正在做一个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中。但我似乎无法在查询中找到导致错误的问题。
这不能回答你的问题,但它会提示你去哪里看。
如果您得到一个MySQL错误,那么代码在SQL Server中运行良好。然而,问题是您将这些值插入到MySQL中。
令人高兴的是,这仅仅意味着您需要查看select
子句。您需要查看MySQL中列的类型,并确定哪些列是int
s。
那么,转换就有问题了。可能性有:
数据
费尔蒂格
Anzal
类型
当您知道这些列中哪些是整数时,您可以进一步研究。