sql查询未带回正确的记录

sql查询未带回正确的记录,sql,join,Sql,Join,我有一个sql查询,它应该根据某些不匹配的值返回记录。在我的基本库存表中,我得到了实际数量(int)和基本数量(int)。在另一个表中,我得到了ordersQty(它是基于actualQty和baseQty计算出来的)。orderQty将为baseQty-actualQty 下订单时,将使用baseQty-actualQty生成订单数量。但是,如果订单已经下了,并且订单数量+实际数量=基本数量,则不应返回这些记录 我所做的查询没有带回任何记录。。。。。 这就是我所做的: SELECT B

我有一个sql查询,它应该根据某些不匹配的值返回记录。在我的基本库存表中,我得到了实际数量(int)和基本数量(int)。在另一个表中,我得到了ordersQty(它是基于actualQty和baseQty计算出来的)。orderQty将为baseQty-actualQty

下订单时,将使用baseQty-actualQty生成订单数量。但是,如果订单已经下了,并且订单数量+实际数量=基本数量,则不应返回这些记录

我所做的查询没有带回任何记录。。。。。 这就是我所做的:

    SELECT BS.[ID],BS.[WarehouseNo],BS.[Customer],BS.[Site],BS.[VendorNo],BS.[Description],
  BS.[ActualQty],BS.[BaseQty], (BS.[BaseQty] - BS.[ActualQty]) AS PlaceOrderQty
   FROM [dbo].[StockControlBaseStock] AS BS
   RIGHT JOIN [dbo].[StockControlStockOrder] AS SO
   ON BS.ID = SO.BaseStockRef
   WHERE (BS.[ActualQty] + SO.OrderQTY) <> BS.[BaseQty]
   AND BS.[ActualQty] IS NOT NULL
   AND BS.[BaseQty] IS NOT NULL
选择BS.[ID]、BS.[WarehouseNo]、BS.[Customer]、BS.[Site]、BS.[VendorNo]、BS.[Description],
BS.[ActualQty],BS.[BaseQty],(BS.[BaseQty]-BS.[ActualQty])作为PlaceOrderQty
来自[dbo]。[StockControlBaseStock]作为BS
右键将[dbo].[StockControlStockOrder]连接为
在BS.ID=SO.BaseStockRef上
其中(BS.[ActualQty]+SO.OrderQTY)BS.[BaseQty]
并且BS.[ActualQty]不为空
并且BS.[BaseQty]不为空

我做错什么了吗?任何帮助都将不胜感激

您能试试下面的解决方案吗

SELECT BS.[ID],BS.[WarehouseNo],BS.[Customer],BS.[Site],BS.[VendorNo],BS.[Description],
BS.[ActualQty],BS.[BaseQty], (BS.[BaseQty] - BS.[ActualQty]) AS PlaceOrderQty
FROM [dbo].[StockControlBaseStock] AS BS
LEFT JOIN [dbo].[StockControlStockOrder] AS SO
ON BS.ID = SO.BaseStockRef
WHERE (BS.[ActualQty] + Iif(SO.OrderQTY IS NULL, 0, SO.OrderQTY)) <> BS.[BaseQty]
AND BS.[ActualQty] IS NOT NULL
AND BS.[BaseQty] IS NOT NULL
选择BS.[ID]、BS.[WarehouseNo]、BS.[Customer]、BS.[Site]、BS.[VendorNo]、BS.[Description],
BS.[ActualQty],BS.[BaseQty],(BS.[BaseQty]-BS.[ActualQty])作为PlaceOrderQty
来自[dbo]。[StockControlBaseStock]作为BS
左键将[dbo].[StockControlStockOrder]按原样连接
在BS.ID=SO.BaseStockRef上
其中(BS.[ActualQty]+Iif(SO.OrderQTY为空,0,SO.OrderQTY))BS.[BaseQty]
并且BS.[ActualQty]不为空
并且BS.[BaseQty]不为空

此查询返回所有没有足够订单的订单

您可以为此发布sql FIDLE吗?很抱歉,我不确定sql FIDLE是什么?如果您访问sqlfiddle.com,则可以创建表并插入值,然后运行select语句以查看输出。你可以说它是虚拟数据库。当你们创建这些表格的时候,就给我们提供那个把小提琴的链接。其中一把小提琴是这样的