首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >区分库存和销售顺序的查询

区分库存和销售顺序的查询
EN

Stack Overflow用户
提问于 2016-06-04 01:18:55
回答 1查看 40关注 0票数 1

我有两张桌子。表A包含一个列优先级。表B包含优先级、批次和销售订单。

表A

代码语言:javascript
复制
Priority
--------
122
123
124

表B

代码语言:javascript
复制
Priority |  Lotid   | salesorderline
--------------------------------
122        |  14257  |      4   
122        |  14528  |      6  
122        |  14782  |      4  
122        |  14587  |      0  

我期待的结果如下:

代码语言:javascript
复制
Priority | TotalLot | salesorder | In Stock
-------------------------------------------
     122 |        4 |          3 |        1

如果salesorderline大于它的salesorder,则为股票。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-04 01:32:37

因此,对于Table A中的每个优先级(我将称之为Priorities),您希望在Table B (Lots)中的每一行组上聚集数据?

构建此查询的方法有多种。最简单的查询是一个带有谓词聚合函数的查询:

代码语言:javascript
复制
SELECT
    Lots.Priority,
    COUNT(*) AS TotalLots,
    COUNT(CASE WHEN SalesOrderLine  > 0 THEN 1 ELSE NULL END) AS SalesOrder,
    COUNT(CASE WHEN SalesOrderLine <= 0 THEN 1 ELSE NULL END) AS InStock
FROM
    Lots
    INNER JOIN Priorities ON Priorities.Priority = Lots.Priority
   -- this JOIN doesn't do anything because the Priorities table does not contain any useful data at this point
GROUP BY
    Priority
ORDER BY
    Priority ASC

请注意,我觉得您的数据库设计是不正确的--我不明白为什么行SalesOrder/Lot行应该表示什么是库存的,而重载SalesOrderLine给出它的意义是一个糟糕的设计。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37625435

复制
相关文章

相似问题

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