【问题标题】:Invalid argument to function in access sql WHERE NOT IN访问 sql WHERE NOT IN 中的函数参数无效
【发布时间】:2016-09-28 16:00:27
【问题描述】:

我有一张桌子1

  PreA  BaB   CPS  CommName CommName_CPS
    we   ds   123   Degree   123-Degree
    Se   dd   345   arrow    345-arrow 
    KM   sd   674   inv      674-inv

我有一张桌子2

  PreA  BaB   CPS  CommName CommName_CPS
    we   ds   123   Degree   123-Degree
    Se   dd   345   arrow    345-arrow 
    KM   sd   674   inv      674-inv
    DJ   gfd  435   klm      435-klm
    rt   ggsd 865   hff      865-hff

Table1(是来自另一个表的查询表)具有字段 CommName_CPS,它连接两个字段,与 table2 相同。 当使用以下查询将 tbl1 与 tbl2 进行比较时,我正在尝试整理不常见的数据

SELECT table1.PreA, table1.BaB,table1.CPS,table1.CommName,table1.CommName_CPS
FROM table1
WHERE CommName_CPS Not In (select CommName_CPS from table2); 

我收到一个错误 Invalid argument to function。

【问题讨论】:

  • 我看不出你的语法有什么问题——而且你没有在那个 SQL 中使用函数,所以很可能是由于你的连接函数没有在你的错误命名中向我们展示查询表 1。正如 Serge 建议的那样,如果您的语法不使用 NZ 函数来附加两个字符串,则会出现问题。

标签: sql ms-access-2010


【解决方案1】:

试试这个,如果CommName_CPS可以为空的话,不存在会更好,你可以阅读这篇文章http://sqlinthewild.co.za/index.php/2010/02/18/not-exists-vs-not-in/

SELECT *
FROM   table1 t1
WHERE  NOT EXISTS (SELECT 1
                   FROM   table2 t2
                   WHERE  t1.CommName_CPS = t2.CommName_CPS) 

【讨论】:

  • 查询似乎适用于表,而不是查询表。不知道为什么
  • 什么是query table?如果它实际上是对表的查询,请显示您的 SQL。这就是导致问题的原因
【解决方案2】:

正如我在我的 cmets 中提到的..

在连接两个字段时更改表​​ 1 查询以捕获空值:

SELECT PreA, BaB, CPS,CommName,  
NZ([CPS],"") & "-" & NZ([CommName],"") AS CommName_CPS From <YourOtherTable>

【讨论】:

  • 谢谢,但没用。令我惊讶的是,如果我将 table1 和 table2(查询表)作为普通表并连接和查询不常见的数据,它就可以工作。并且没有错误。真的不知道为什么
  • 显示你的 SQL 不起作用 - 解释什么是 uncommon dataquery table 是什么。
  • 我的问题中的 Table1 和 table2 是查询表,我试图从其中两个中通过 SQL(它在问题中)基于连接字段 CommName_CPS 对不常见的数据进行排序。它给了我函数错误的无效参数。您的代码在获取 Table1 和 table2 时起作用。但是当我尝试对不常见的数据进行黑白排序时,它仍然会出错。查询是 Just **select * from maintbl where PreA is not null **
  • 这仍然很令人困惑-再次-什么是“查询表”?如果您的意思是query ... on a table,请显示您的查询 SQL。你是如何尝试sort uncommon data
  • 您说的是 Excel QueryTable 对象吗? msdn.microsoft.com/en-us/library/office/… - 你没有参考 Excel
猜你喜欢
  • 1970-01-01
  • 2021-08-19
  • 2012-01-07
  • 1970-01-01
  • 2015-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多