关于order 和 item 的sql查询

elkxie 2005-01-25 04:44:45
销售记录表中每一个定单(order)对应着多条记录,而每个定单的中每一个产品对应一条记录,如下:
order item
aa 11
aa 22
bb 11
bb 33
bb 44
问题:
如何找出item含有(或者不包含)'11'的定单数?
...全文
256 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiajianfeng 2005-01-25
  • 打赏
  • 举报
回复
--try
--含有11

SELECT [order], SUM(price * qty) AS 总价 FROM tb a
WHERE [order] IN (SELECT [order] FROM tb_0125 WHERE [order] = a.[order] AND item = '11')
GROUP BY [order]
HAVING SUM(price * qty) > 80

--不含有
SELECT [order], SUM(price * qty) AS 总价 FROM tb a
WHERE [order] NOT IN (SELECT [order] FROM tb_0125 WHERE [order] = a.[order] AND item = '11')
GROUP BY [order]
HAVING SUM(price * qty) > 80
elkxie 2005-01-25
  • 打赏
  • 举报
回复
对不起,我开始可能简化了这个问题,现在看来简化可能有些问题:(
原题是这样的:找出定单总价(对应每个item 有price 和 qty)大于某值
即 sum(price*qty)>=80 (group by order) 同时含有(或者不含有)某个item

感谢各位关注
xiajianfeng 2005-01-25
  • 打赏
  • 举报
回复
--不含有

SELECT [order] FROM tb a
WHERE [order] NOT IN (SELECT [order] FROM tb WHERE [order] = a.[order] AND item = '11')
GROUP BY [order]
xiajianfeng 2005-01-25
  • 打赏
  • 举报
回复
--不含有


SELECT [order] FROM tb_0125 a
WHERE [order] IN (SELECT [order] FROM tb_0125 WHERE [order] = a.[order] AND item <> '11')
GROUP BY [order]
xiajianfeng 2005-01-25
  • 打赏
  • 举报
回复
--try
--含有

SELECT [order] FROM tb a
WHERE [order] IN (SELECT [order] FROM tb WHERE [order] = a.[order] AND item = '11')
GROUP BY [order]
Softlee81307 2005-01-25
  • 打赏
  • 举报
回复
select * from order where item='11' --- 是含有
select * from order where item<>'11' --不包含
elkxie 2005-01-25
  • 打赏
  • 举报
回复
对不起,应该是定单的编号

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧