简体   繁体   English

SQL 条件表达式 MS Access 中的数据类型不匹配

[英]SQL Data type mismatch in criteria expression MS Access

I have a problem.我有个问题。

When I try to run this query:当我尝试运行此查询时:

SELECT Artiesten.ID AS txtArtiestId, 
NULL AS txtAlbumId, 
NULL AS txtNummerId, 
Artiestnaam AS Artiesten, 
NULL AS Albums, 
NULL As Nummers 
FROM Artiesten 
WHERE Artiesten.Artiestnaam LIKE '*On*' 

UNION ALL

SELECT 
Artiesten.ID AS txtArtiestId, 
Albums.ID AS txtAlbumId, 
NULL AS txtNummerId, 
Artiesten.Artiestnaam AS 
Artiesten, Naam AS Albums, 
NULL As Nummers 
FROM Albums 
INNER JOIN Artiesten ON Albums.ArtiestId = Artiesten.ID 
WHERE  albums.naam LIKE '*On*'

UNION ALL

SELECT 
Artiesten.ID AS txtArtiestId, 
Albums.ID AS txtAlbumId, 
Nummers.ID AS txtNummerId, 
Artiesten.Artiestnaam AS Artiesten, 
Albums.Naam AS Albums, 
Nummers.Naam AS Nummers 
FROM  (Nummers INNER JOIN Albums ON Nummers.AlbumId = Albums.ID)
INNER JOIN Artiesten ON Albums.ArtiestId = Artiesten.ID
WHERE  Nummers.Naam LIKE '*On*'

It says:它说:

"Data type mismatch in criteria expression" “条件表达式中的数据类型不匹配”

Now I already know that it has to do something with the first and the last query.现在我已经知道它必须与第一个和最后一个查询有关。 Those 2 together are causing the error.这两个一起导致了错误。

What am I doing wrong?我究竟做错了什么?

You might be able to fix this by providing NULL with the appropriate type in the first query:您可以通过在第一个查询中为NULL提供适当的类型来解决此问题:

SELECT Artiesten.ID AS txtArtiestId, 
       int(NULL) AS txtAlbumId, 
       int(NULL) AS txtNummerId, 
       Artiestnaam AS Artiesten, 
       str(NULL) AS Albums, 
       str(NULL) As Nummers 
FROM Artiesten 
WHERE Artiesten.Artiestnaam LIKE '*On*'

Actually, I'm not sure what the right types are.实际上,我不确定正确的类型是什么。 I'm just guessing.我只是猜测。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM