首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL产品/产品销售

SQL产品/产品销售
EN

Stack Overflow用户
提问于 2009-02-01 18:44:58
回答 4查看 613关注 0票数 0

一个常见的(我假设是?)查询类型:

我有两个表('products','productsales')。“productsales”中的每个记录代表一笔销售(因此它有“date”、“quantity”、“product_id”)。如何高效地执行如下查询:

检索日期Y和日期Z之间销售超过X次的所有产品的产品名称。

(X是售出数量,而不是交易数量)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-02-01 18:53:53

代码语言:javascript
复制
 SELECT p.[name]
 FROM products p
 WHERE p.product_id in (SELECT s.product_id
     FROM productsales s
     WHERE s.[date] between @dateStart and @dateEnd
     GROUP BY s.product_id
     HAVING Sum(s.quantity) > @X )
票数 1
EN

Stack Overflow用户

发布于 2009-02-01 18:56:05

以上查询并不完全正确...

代码语言:javascript
复制
SELECT Name FROM Products
WHERE ProductId IN
( SELECT ProductId 
  FROM ProductSales
  WHERE ProductSales.Date BETWEEN  Y AND Z 
  GROUP BY ProductId
  HAVING SUM(ProductSales.Qty) > x
)
票数 1
EN

Stack Overflow用户

发布于 2009-02-01 18:58:32

实际上,我认为你应该学习group by statement

最简单的语句是:

代码语言:javascript
复制
SELECT ps.product_id, COUNT(*) 
           FROM product_sales ps 
           WHERE ps.product_id = id AND ps.Date BETWEEN @Y AND @Z
           GROUP_BY product_id;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/501347

复制
相关文章

相似问题

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