Rumah  >  Artikel  >  pembangunan bahagian belakang  >  如何用SQL查询如下数据结构的商品剩余库存

如何用SQL查询如下数据结构的商品剩余库存

WBOY
WBOYasal
2016-06-06 20:10:552352semak imbas

问题描述:根据店铺ID查出该店铺所有商品的剩余库存量?

业务说明:该商品剩余库存量 = 该商品总入库记录和 - 该商品总销售和。

抽象以后的数据库表结构如下:

如何用SQL查询如下数据结构的商品剩余库存

问题抽象:用MySQL查询1号店铺所有商品的剩余库存信息?

致谢:希望有大神帮忙解决下,SQL学的实在太烂,如果一条SQL不能实现,可以说一下SQL跟PHP结合实现的方法,当然如果SQL能实现最好。非常感谢!

回复内容:

问题描述:根据店铺ID查出该店铺所有商品的剩余库存量?

业务说明:该商品剩余库存量 = 该商品总入库记录和 - 该商品总销售和。

抽象以后的数据库表结构如下:

如何用SQL查询如下数据结构的商品剩余库存

问题抽象:用MySQL查询1号店铺所有商品的剩余库存信息?

致谢:希望有大神帮忙解决下,SQL学的实在太烂,如果一条SQL不能实现,可以说一下SQL跟PHP结合实现的方法,当然如果SQL能实现最好。非常感谢!

看来没人回答啊,其实这也是数据库设计时候的思想吧。如果入库记录跟销售记录合在一张表,然后用一条sql就可以解决,合并以后的表结构

店铺ID 商品ID 入库 销售
001 1 10 3
001 2 10 5

SQL如下

<code>select productid, sum(stock)-sum(sale) as total from `record` where shopid = '001' GROUP BY productid;</code>

[个人观点]这样的设计机构与上边相比较结构上没有太大差异,设计上也基本合理,从计算上来讲,现在这种结构应该更快一些。

给你一个方向吧!先用group by 过去单款商品的销售总量,接着使用表关联的方式,将进库量与销售总量进行运算

设计问题,很典型拍脑袋设计,没有考虑需求分析

这是sql语句,多表查询,一条sql实现,select shop.*,product.*,stock.*,sale.*,stock.count - sale.count as ss from shop left join product on shop.id = product.shop_id left join stock on product.id = stock.productid left join sale on product.id = sale.product_id where stock.count > 0 and sale.count > 0,最后结果已经给出每种商品的剩余库存,

很明显,我认为数据表设计不合理,既然剩余库存这么重要,我认为需要增加这个字段。
多表关联查询的速度是比较慢,而且特别耗费CPU,而剩余库存需要在很多时候被读取,每次这样查询得到显然我认为是不合理的。

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn