Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关键字为NOT IN的SQL查询_Sql_Vb6 - Fatal编程技术网

关键字为NOT IN的SQL查询

关键字为NOT IN的SQL查询,sql,vb6,Sql,Vb6,为什么这个问题是错误的 我现在遇到语法错误,VB在抛出错误时没有突出显示错误的特定部分。下面的查询应该可以工作。尝试从sql server或任何sql ide运行它 select v.nroventa, sum(v.importe) from ventas v, pagosventas p where v.nroventa=p.nroventa and v.codigocliente=41 and v.nroventa not in (select p.nroventa

为什么这个问题是错误的


我现在遇到语法错误,VB在抛出错误时没有突出显示错误的特定部分。

下面的查询应该可以工作。尝试从sql server或任何sql ide运行它

select v.nroventa, sum(v.importe)
from ventas v, pagosventas p 
where v.nroventa=p.nroventa 
  and v.codigocliente=41 
  and v.nroventa not in (select p.nroventa 
                         from pagosventas p, ventas v 
                         where p.nroventa=v.nroventa)
group by v.nroventa

我认为您还需要在select的第一个字段上使用agg函数,例如MAX(v.nroventa)


你犯了什么错误?请粘贴它。这只是语法错误,它没有说在哪里。我只是假设它是一个缺少的单词或其他东西。直接在您使用的SQL引擎上尝试它,并显示您得到的错误。此查询没有意义(除非我完全缺少某些东西)。您正在对
进行子查询,其中
子句与主查询相同。所以你不会得到任何结果!如果我错了,有人纠正我!我同意子查询似乎是外部查询的超集,因此不应该返回任何结果——也许如果您提供一些示例数据和预期结果,我们可能能够构造一个合理的查询。另外,
JOIN
作为标准SQL的一部分已经至少有20年了,并且在我能想到的每个数据库系统中都实现了它。请开始使用它,而不是
FROM
子句中的
。选择
列表中的内容需要在聚合函数中,或者是
GROUP BY
子句中的一部分-
v.nroventa
已经满足了第二个要求,如果给定子查询,它可能会返回0条记录。语法错误是否与在子查询以及主查询中再次使用p和v作为别名有关?
SELECT A.nroventa,A.sum_importe
FROM
(
select v.nroventa, sum(v.importe) AS sum_importe
from ventas v, pagosventas p 
where v.nroventa=p.nroventa 
  and v.codigocliente=41 
group by v.nroventa
) A,
(
SELECT v.nroventa
FROM ventas v
WHERE v.nroventa 
not in
(select p.nroventa from pagosventas p, ventas v where p.nroventa=v.nroventa)
) B
WHERE A.nroventa = B.nroventa;
select MAX(v.nroventa), sum(v.importe)
from ventas v, pagosventas p 
where v.nroventa=p.nroventa 
and v.codigocliente=41 
and v.nroventa not in (select p.nroventa 
                     from pagosventas p, ventas v 
                     where p.nroventa=v.nroventa)
group by v.nroventa