记录一个sql:查询商品码对应多个商品的商品码

这篇具有很好参考价值的文章主要介绍了记录一个sql:查询商品码对应多个商品的商品码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

一个项目中,商品表和商品码表是一对多的关系,但由于程序没有控制好,导致有些商品码对应有多个商品,为了修正数据,我们得把商品码对应多个商品的商品码找出来.

sql 语句

goods_detail表结构

CREATE TABLE `goods_detail` (
  `id` bigint(20) NOT NULL COMMENT '主键',
  `goods_id` bigint(20) NOT NULL COMMENT '商品id',
  `bar_code` varchar(20) DEFAULT NULL COMMENT '商品码',
  `library_status` int(1) NOT NULL DEFAULT '1' COMMENT '在库状态 1-在库 2-离库',
  `out_type` int(1) NOT NULL DEFAULT '3' COMMENT '离库类型 3-未离库 4-出库 5-调拨(出的时候标记)',
  `goods_status` int(1) NOT NULL DEFAULT '4' COMMENT '是否可用 3-不可用 4-可用'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='商品明细表';

查询商品码对应多个商品的商品码的sql

SELECT
	d.bar_code AS 商品码,
	count( DISTINCT d.goods_id ) AS 商品数
FROM
	goods_detail d 
WHERE
	d.library_status = 1 
	AND d.out_type = 3 
	AND d.goods_status = 4 
	AND d.bar_code IS NOT NULL
	AND d.bar_code != ''
	AND d.bar_code != '0'
	AND d.bar_code != '无'
GROUP BY
	d.bar_code
	HAVING 商品数 > 1;

查询结果
记录一个sql:查询商品码对应多个商品的商品码,数据库,sql,数据库
验证sql

SELECT
	 d.id,d.goods_id,d.bar_code
FROM
	air_goods_detail d 
WHERE
	d.library_status = 1 
	AND d.out_type = 3 
	AND d.goods_status = 4 
	AND d.bar_code = '202312181250';

记录一个sql:查询商品码对应多个商品的商品码,数据库,sql,数据库
随机挑一个商品码查询,果然对应两个不同的商品,sql查询正确。

总结

在上述 sql统计查询中,先按商品码分组,再去重商品id记数(count( DISTINCT d.goods_id )),最后通过HAVING 把统计结果进行过虑,得到最终想要的商品码。文章来源地址https://www.toymoban.com/news/detail-811444.html

到了这里,关于记录一个sql:查询商品码对应多个商品的商品码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【MySQL】根据多个字段查询数据进行去重的sql编写

    一、实现思路 根据四个字段进行数据去重的SQL编写可以使用GROUP BY和HAVING子句来实现。 场景一: 假设有一个名为 table1 的数据表,其中包含四个字段: field1 、 field2 、 field3 和 field4 。要求根据这四个字段进行数据去重。 可以使用以下SQL语句: 场景二: 上述SQL语句会返回所

    2024年02月15日
    浏览(56)
  • 自己动手做数据库系统:解释执行 update 和 delete 对应的 sql 语句

    在上一节我们完成了 select 语句的解释执行,本节我们看看 Update 和 Delete 对应的语句如何解释执行,当然他们的实现原理跟我们前面实现的 select 语句执行大同小异。无论是 update还是 delete 都是对数据表的修改,因此他们的实现方法基本相同。 假设我们要执行如下 sql 语句:

    2024年01月22日
    浏览(51)
  • 查询数据库中的重复数据记录

    ========第一篇========= 在一张表中某个字段下面有重复记录,有很多方法,但是有一个方法,是比较高效的,如下语句: select data_guid from adam_entity_datas a where a.rowid (select min(b.rowid) from adam_entity_datas b where b.data_guid = a.data_guid) 如果表中有大量数据,但是重复数据比较少,那么可以

    2024年02月07日
    浏览(51)
  • 关系数据库SQL数据查询

    1.查询仅涉及一个表,选择表中的若干列 查询全部列 选出所有属性列: 在SELECT后面列出所有列名 将目标列表达式指定为 * 查询经过计算的值 SELECT子句的目标列表达式不仅可以为表中的属性列,也可以是表达式 使用列别名改变查询结果的列标题: 2.选择表中的若干元组

    2024年02月09日
    浏览(55)
  • 数据库 SQL高级查询语句:聚合查询,多表查询,连接查询

    创建Students和Courses表 直接查询 设置别名查询 设置条件查询 使用COUNT(*) 和 COUNT(StudentID)是一样的效果,因为StudentID是主键,每行记录的主键都不同。另外我们在聚合查询中还是能使用WHERE子句的,比如我们要 查找年龄大于20岁的学生数量 ,可使用以下SQL语句: 函数 说明 SUM

    2024年02月09日
    浏览(127)
  • 数据库作业-sql语句查询

    建表的插入数据的表 数据库作业-sql建表和插入数据_快乐的xiao何的博客-CSDN博客 create table supplier( supplierno char(6) primary key, suppliername nvarchar(10), address nvarchar(20), number char(11) )create table category( categoryno char(5) primary key, categoryname varchar(20), descriptions text... https://blog.csdn.net/m0_539670

    2023年04月23日
    浏览(57)
  • 数据库SQL查询相关练习

    1、显示所有职工的基本信息。 2、查询所有职工所属部门的部门号,不显示重复的部门号。 3、求出所有职工的人数。 4、列出最高工和最低工资。 5、列出职工的平均工资和总工资。 6、创建一个只有职工号、姓名和参加工作的新表,名为工作日期表。 8、列出所有姓刘的职工

    2024年01月25日
    浏览(49)
  • 《数据库原理》实验六 SQL数据查询实验

    本系列传送门: 实验二 SQL Server SSMS工具创建和管理数据库及数据表 实验三 SQL Server SSMS工具添加数据 实验四 SQL的数据定义语句 实验五 数据库完整性约束的实现与验证 实验六 SQL数据查询实验 实验六(2) SQL数据查询—连接查询 实验七 SQL的数据更新和视图 实验八 T_SQL编程

    2024年02月03日
    浏览(102)
  • MySQL 根据多字段查询重复数据 MySQL根据某一个或者多个字段查找重复数据

    在实际的数据库应用中,我们经常需要根据多个字段来查询重复的数据。MySQL 提供了一些方法来实现这个功能,让我们能够快速准确地找到和处理重复数据。本文将介绍如何使用 MySQL 来根据多字段查询重复数据,并提供相应的代码示例。 什么是重复数据? 重复数据指的是在

    2024年02月12日
    浏览(42)
  • 【数据库】日常使用PL/SQL 登录ORACLE 数据库查询数据

    一、PL/SQL 登录方式 username: ##访问数据库的账号 password: ##访问数据库的密码 Databse: ##数据库IP地址/实例名 数据库集群心跳地址/实例名 Connect as : ##Normal,如果使用sysdba账户登录选择SYSDBA 二、PL/SQL使用SQL语句查询 点击上方导航栏,New,选择SQL Window,即可再次输入要查询的

    2024年02月19日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包