MYSQL数据库查询 库存短缺查询!

风.foxwho 2007-11-20 02:33:53


SELECT COUNT(distinct a.productid),SUM(a.number) AS asum,a.productid AS aproductid,
a.warehouseid AS awarehouseid,
a.number AS anumber,b.alarm AS balarm,a.price AS aprice,b.unit AS bunit
FROM {$tablepre}stocksalesdate AS a,{$tablepre}productbasic AS b
WHERE a.productid=b.productbasicid and a.type!=2 and b.alarm>=a.number
GROUP BY a.productid ORDER BY a.datetime desc LIMIT ".$offset.",".$psize."



*********************************************
数据库说明
stocksalesdate 库存
productbasic 产品基本数据

**********************************************
字段说明
wljk_productbasic------------------产品基本数据
productbasicid ID
name 产品名称
number 产品编码或产品编号
supplierid 供应商
type 产品型号
sortid 产品类别
unit 计量单位
buyprice 采购价
saleprice 出售价
alarm 警戒库存
content 产品描述
image 图片上传
content1 备注1
content2 备注2
datetime 添加时间
sid 添加者

wljk_stocksalesdate----------------库存管理

stocksalesdateid ID
ok 类别 1 为产品 2 为服务
productid 产品名称ID
price 单价
number 数量
sum 总价
serveid 服务ID
supplierid 供应商ID
content 备注
warehouseid 仓库ID
type 1 采购 2销售 3初始入库(用于采购入库)
datetime 添加日期
sid 添加人ID


库存数据库里数据有:

库存员 产品 库存日期 数量 单价 仓库 库位 操作
超级管理员 华硕2硬盘 2007-11-20 21 800.0 设备仓库 硬盘 修改 删除
超级管理员 华硕硬盘 2007-11-20 21 800.0 设备仓库 硬盘 修改 删除
超级管理员 华硕硬盘 2007-11-20 50 800.0 设备仓库 硬盘 修改 删除
超级管理员 产品名称2 2007-11-20 600 700.0 设备仓库 显卡 修改 删除
超级管理员 产品名称2 2007-11-20 500 500.0 设备仓库 硬盘 修改 删除

产品数据库里有
产品名称 供应商 产品类别 计量单位 采购单价 出售单价 产品编码 警戒库存 操作
华硕硬盘 IBM2 电脑耗材 个 500 600 0004 70 修改 删除
IBM笔记本 IBM2 电脑耗材 台 30000 40000 0003 20 修改 删除
产品名称2 IBM2 电脑耗材 K 300 200 003 20 修改 删除
华硕2硬盘 IBM2 电脑耗材 个 500 600 0004 70 修改 删除

库存短缺查询现结果:
仓库名称 产品名称 单位 警戒库存 当前库存 超限库存
设备仓库 华硕2硬盘 个 70 21 -49
设备仓库 华硕硬盘 个 70 71 1


想要出现的结果是:
短缺库存查询
仓库名称 产品名称 单位 警戒库存 当前库存 超限库存
设备仓库 华硕2硬盘 个 70 21 -49


请帮忙看下这个查询SQL语句怎么写,谢谢!
最好就在一个SQL查询语句中
下面我写了一个,但是错误!
我把b.alarm>=a.number 改成b.alarm>=SUM(a.number)他就是错误


SELECT COUNT(distinct a.productid),SUM(a.number) AS asum,a.productid AS aproductid,
a.warehouseid AS awarehouseid,
a.number AS anumber,b.alarm AS balarm,a.price AS aprice,b.unit AS bunit
FROM {$tablepre}stocksalesdate AS a,{$tablepre}productbasic AS b
WHERE a.productid=b.productbasicid and a.type!=2 and b.alarm>=SUM(a.number)
GROUP BY a.productid ORDER BY a.datetime desc LIMIT ".$offset.",".$psize."



...全文
261 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
you_kind 2007-11-21
  • 打赏
  • 举报
回复
对sum 后的列再做条件要用 having 吧~


select COUNT(distinct a.productid),SUM(a.number) AS asum,a.productid AS aproductid,
a.warehouseid AS awarehouseid,
a.number AS anumber,b.alarm AS balarm,a.price AS aprice,b.unit AS bunit
from stocksalesdate a, productbasic b
where a.productid=b.productbasicid and a.type!=2
GROUP BY a.productid
having sum(a.number)<=sum(b.alarm)/count(b.alarm)
lgjlry 2007-11-21
  • 打赏
  • 举报
回复
SELECT
COUNT(distinct a.productid),
SUM(a.number) AS asum,
a.productid AS aproductid,
a.warehouseid AS awarehouseid,
a.number AS anumber,
b.alarm AS balarm,
a.price AS aprice,
b.unit AS bunit
FROM {$tablepre}stocksalesdate AS a,{$tablepre}productbasic AS b
WHERE a.productid=b.productbasicid and a.type!=2 and b.alarm>=a.asum
GROUP BY a.productid ORDER BY a.datetime desc
LIMIT ".$offset.",".$psize."
风.foxwho 2007-11-21
  • 打赏
  • 举报
回复
哇,太感谢了。


看来,我对SQL语句,了解的还是不够深啊、!!!!!!!!!

给分加分!!!
yzxlyd 2007-11-20
  • 打赏
  • 举报
回复
先顶,明天有空再看看
基于Spring Boot的医院资源管理系统是一款为医疗机构提供高效、便捷的资源管理解决方案的软件。该系统采用了Java语言开发,结合了Spring Boot框架和MySQL数据库,实现了对医院资源的全面管理。以下是该系统的主要功能介绍:患者管理:系统可以记录患者的基本信息,如姓名、年龄、性别、联系方式等,方便医护人员快速了解患者情况。医生管理:系统可以管理医生的信息,包括姓名、职称、擅长领域等,方便患者选择合适的医生就诊。药品管理:系统可以对药品进行分类管理,包括药品名称、规格、生产厂家、价格等信息,方便药房工作人员进行药品的采购、入库、出库等操作。库存管理:系统可以实时监控药品库存情况,确保药品充足供应,避免药品短缺或过期。用药记录:系统可以记录患者的用药情况,包括用药时间、药品名称、用量等信息,方便医生了解患者的用药情况,为患者提供更好的治疗方案。费用管理:系统可以自动计算患者的医疗费用,包括药品费、检查费、治疗费等,方便患者了解自己的费用情况。报表统计:系统可以根据需要生成各种报表,如患者就诊统计、药品销售统计、医生工作量统计等,方便医院管理层进行数据分析和决策。总之,基于Spring Boot的医院资源管理系统为医院提供了一套完善的资源管理解决方案,有助于提高医院工作效率,降低运营成本,提升患者就诊体验。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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