SQL Server查询:相关的购买物品

时间:2018-09-21 17:02:58

标签: sql sql-server

我有三个要使用的主表:

  • 收据(r_id :: int(pk和身份),fileName :: varchar,recpt_id :: varchar,recpt_dt :: date,total_sales :: decimal)
  • 购买(p_id :: int(pk和身份),fileName :: varchar,item_id :: int,units :: int,price :: decimal,discount :: decimal)
  • 项目(i_id :: int(pk和身份),item_name :: varchar)

注意:购买表是收货的子表。它详细说明了收据中购买的物品。

我正在处理一个适当的查询,要求显示与该物品一起购买的相关物品,或者显示该物品(如果不适用),并带有在可选的用户指定日期范围内输入的关键字参数。

例如,如果我使用产品关键字“嘉士伯啤酒”进行搜索,则结果集应返回与其购买相关的商品(例如,牛肉汉堡,花生等),或者仅返回该啤酒本身及其对应编号销售单位。结果集将以表格形式和维恩图形式显示。

到目前为止,我已经解决过的查询(使用T-SQL方言)就像:

select bb.item_id, sum(bb.units) 
from purchase bb 
join
    (select r.fileName 
     from receipt r join purchase b on r.fileName = b.fileName 
     join item i on i.id = b.item_id and i.name like '%Carlsberg Beer%' 
     group by r.fileName) aa on aa.fileName = bb.fileName
group by bb.item_id

但是,我认为该查询只是所使用的整个查询的一半,我不确定如何在此基础上使其更加完整和适当。

0 个答案:

没有答案