首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sql查询以减去这两个表。怎么啦?

Sql查询以减去这两个表。怎么啦?
EN

Stack Overflow用户
提问于 2013-11-07 08:14:35
回答 2查看 1.5K关注 0票数 1
代码语言:javascript
复制
select table1.t1 from
(
(
select   
         ItemCategory.Name as Category,
         InventoryItems.Name as ItemName,
         sum(SalesItems.Quantity) as Quantity,
         (InventoryItems.Weight*sum(SalesItems.Quantity)) as Weight,
         sum(SalesItems.Amount) as Amount
   from SalesInvoices 
   inner join Sales on Sales.ID = SalesInvoices.SalesID 
   inner join SalesItems on SalesItems.SalesID = Sales.ID
   inner join InventoryItems on InventoryItems.ID = SalesItems.InventoryItemID 
   inner join ItemCategory on ItemCategory.ID = InventoryItems.ItemCategoryID 
   inner join BusinessPartners on Sales.BusinessPartnerID = BusinessPartners.ID
   where SalesInvoices.Date >= '2013-07-1' and SalesInvoices.Date <= '2013-11-7'
   group by ItemCategory.Name,InventoryItems.Name,InventoryItems.Weight
) as t1,
(
select  
        ItemCategory.Name as Category,
        InventoryItems.Name as ItemName,
        sum(SalesAdjustmentItems.AdjustedQuantity)*-1 as Quantity,
        (sum(SalesAdjustmentItems.AdjustedQuantity)*InventoryItems.Weight)*-1 as  
         Weight,
         sum(SalesAdjustmentItems.AmountReturn)*-1 as Amount
 from SalesInvoices 
 inner join Sales on Sales.ID = SalesInvoices.SalesID 
 inner join SalesItems on SalesItems.SalesID = Sales.ID
 inner join SalesAdjustmentItems on SalesAdjustmentItems.SalesItemID = SalesItems.ID 
 inner join InventoryItems on InventoryItems.ID = SalesItems.InventoryItemID
 inner join ItemCategory on ItemCategory.ID = InventoryItems.ItemCategoryID 
 inner join SalesAdustment on SalesAdustment.SalesInvoiceID = SalesInvoices.ID
 inner join BusinessPartners on Sales.BusinessPartnerID = BusinessPartners.ID 
 where SalesAdustment.Date>= '2013-07-1' and SalesAdustment.Date <= '2013-11-7'
 group by ItemCategory.Name,InventoryItems.Name,InventoryItems.Weight
 ) as t2
 )
 as table1

我在这个查询中做错了什么。第一个查询是销售查询,第二个查询是销售返回查询。我想得到销售和回报的差额。却给了我错误。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-07 08:35:53

SQL减号操作符称为EXCEPT,例如查找没有发票的sales:

代码语言:javascript
复制
-- Sales minus SalesInvoices
SELECT ID
  FROM Sales
EXCEPT
SELECT SalesID
  FROM SalesInvoices;
票数 5
EN

Stack Overflow用户

发布于 2013-11-07 08:52:49

如果您使用的是旧版本,

代码语言:javascript
复制
SELECT ID
  FROM Sales 
where not exists(SELECT SalesID  FROM SalesInvoices where sales.ID=SalesID);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19830852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档