Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.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
从SQL Server中的另一个查询中减去查询_Sql_Sql Server - Fatal编程技术网

从SQL Server中的另一个查询中减去查询

从SQL Server中的另一个查询中减去查询,sql,sql-server,Sql,Sql Server,一个一直困扰着我的简单问题 我有以下两个问题: select * from alm_existencias_almacen where id_warehouse = 3 select * from alm_existencias_almacen where id_warehouse = 8 我想得到仓库3中但不在仓库8中的物品的结果,反之亦然,那些在仓库8中而不在仓库3中的物品 问题是,两种商品中都可能有商品,我可以有以下情况: id_warehouse id_color id_design

一个一直困扰着我的简单问题

我有以下两个问题:

select * from alm_existencias_almacen where id_warehouse = 3

select * from alm_existencias_almacen where id_warehouse = 8
我想得到仓库3中但不在仓库8中的物品的结果,反之亦然,那些在仓库8中而不在仓库3中的物品

问题是,两种商品中都可能有商品,我可以有以下情况:

id_warehouse id_color id_design
---------------------------------
8            RED      STYLISH
3            RED      NEW_AGE
所以在这种情况下,我想检索一个空集

如果它只是在ware 8中,它将只返回ware 3中的第一行和相反的行

这看起来很容易,但我整个上午都在做这件事,没有结果。我试过了

select * 
from alm_existencias_almacen 
where id_color not in (select * 
                       from alm_existencias_almacen 
                       where id_almacen = 3) 
  and id_design not in (select * 
                        from alm_existencias_almacen 
                        where id_almacen = 3) 
  and id_almacen = 8;
但是出现了一个错误


提前谢谢

你说得对,这很容易

在wh 3中,而不是在8中,基于id_颜色:

select * from alm_existencias_almacen where id_warehouse = 3
and id_color not in
    (select id_color from alm_existencias_almacen where id_warehouse = 8)

可以使用Set操作

仓库3中但不在仓库8中的项目的结果

谁在第八件而不是第三件

什么错误?我们看不懂你的屏幕,也看不懂你的思想,你必须告诉我们!请发布准确完整的错误消息!
select * from alm_existencias_almacen where id_warehouse = 3
EXCEPT
select * from alm_existencias_almacen where id_warehouse = 8
select * from alm_existencias_almacen where id_warehouse = 8
EXCEPT
select * from alm_existencias_almacen where id_warehouse = 3