数据库组合查询

article/2025/10/3 19:23:30

            在使用数据库的过程中,数据的查询是使用最多的,所以,数据的精确查询是一个很重要的问题。以前的数据查询是最简单的数据查询,也从来没想过组合查询的问题,可是在做机房收费系统的时候,遇到了一个很大的问题,当三个条件随意组合的时候,会出现7中组合情况。具体问题,见下图:

 

           首先,当连接数据库时,必须要用到查询条件,即where子句,可是数据库中的字段名和窗体中的字段名不相符,所以首先应该将窗体中的字段名设置为数据库可以识别的字段名,代码如下:

 

        

dim strName(2) as string
dim strRelation(2) as string
For Index = 0 To 2'数据库不能识别窗体中的名称,利用循环和选择变成数据库可以识别的名称。Select Case ComboName(Index).TextCase "卡号"strName(Index) = "cardno"Case "学号"strName(Index) = "studentNo"Case "姓名"strName(Index) = "studentName"Case "性别"strName(Index) = "sex"Case "系别"strName(Index) = "department"Case "年级"strName(Index) = "grade"Case "班号"strName(Index) = "class"End SelectSelect Case ComboRelation(Index).TextCase "与"strRelation(Index) = "And"Case "或"strRelation(Index) = "Or"End SelectNext

              现在,数据库可以识别字段名了,接下来,其中查询组合应该怎样组合呢,借鉴学生信息管理系统的经验,首先设置一个标记,利用标记来设置组合方式,代码如下:

dim dd(2) as boolean
Private Sub cmdCheck_Click()MSFlexGrid.clearIf testtxt(ComboName(0).Text) = True Then      '判断第一个条件是否被使用If testtxt(ComboSign(0).Text) = True ThenIf testtxt(txtContent1.Text) = True Thendd(0) = True   '标记第一个条件End IfEnd IfEnd IfIf testtxt(ComboName(1).Text) = True Then     '判断第二个条件是否被使用If testtxt(ComboSign(1).Text) = True ThenIf testtxt(txtcontent2.Text) = True Thendd(1) = TrueEnd IfEnd IfEnd IfIf testtxt(ComboName(2).Text) = True Then   '判断第三个条件是否被使用If testtxt(ComboSign(2).Text) = True ThenIf testtxt(txtContent3.Text) = True Thendd(2) = TrueEnd IfEnd IfEnd If
 
If dd(0) = True Then '首先判断第一个条件是否被选中,如果被选中,则补充完整查询限制条件 txtSQL = txtSQL & " " & strName(0) & " " & ComboSign(0).Text & " " & txtContent1.Text & " " End If '(条件1) If dd(1) = True Then '判断第二个条件是否被选中 If dd(0) = True Then ' 再判断第一个条件是否被选中 txtSQL = txtSQL & " " & strRelation(0) & " " & strName(1) & " " & ComboSign(1).Text & " " & txtContent2.Text & " " Else '(条件2,1) txtSQL = txtSQL & " " & strName(1) & " " & ComboSign(1).Text & " " & txtContent1.Text & " " End If '(条件2) If dd(2) = True Then '判断第三个条件是否被选中 If dd(0) = True Or dd(1) = True Then '判断前两个条件是否被选中 txtSQL = txtSQL & " " & strRelation(1) & " " & strName(2) & " " & ComboSign(2).Text & " " & txtContent3.Text & " " Else '(条件3,1) 或 (条件3,2) 或 (条件3,2,1) txtSQL = txtSQL & " " & strName(2) & " " & ComboSign(2).Text & " " & txtContent3.Text & " " End If '条件(3) End If
 
    If dd(0) = False And dd(1) = False And dd(2) = False Then     '判断是否选择查询条件MsgBox "您还没有完整的选择一个查询条件,请选择查询条件。", vbOKOnly + vbExclamation, "提示"Exit SubComboName(0).SetFocusEnd IfSet mrc = Executesql(txtSQL, msgtext)If mrc.EOF = True ThenMsgBox "没有找到相关记录,请重新输入查询条件。", vbOKOnly + vbExclamation, "提示"Exit SubElseWith MSFlexGrid    '将查询到的数据写到表中For i = 0 To mrc.RecordCount - 1.Rows = .Rows + 1.TextMatrix(.Rows - 1, 0) = mrc.Fields(0).TextMatrix(.Rows - 1, 1) = mrc.Fields(1).TextMatrix(.Rows - 1, 2) = mrc.Fields(2).TextMatrix(.Rows - 1, 3) = mrc.Fields(3).TextMatrix(.Rows - 1, 4) = mrc.Fields(4).TextMatrix(.Rows - 1, 5) = mrc.Fields(5).TextMatrix(.Rows - 1, 6) = mrc.Fields(6)NextEnd WithEnd Ifmrc.Close
End Sub

           首先用dd(2)用来标记三个查询条件,中间的代码用来选择查询方式,三个查询条件组合可以组合成七种组合,也可以把所有的组合方式都写出来,但是,我们采用了一种更简便的方法,就是不管组合方式,我们只考虑单个的查询条件,如果选中第一个条件,则把第一个条件写入内存,如果第二个条件被选中,则把第二个条件写入内存中,依次类推。

           需要说明的是,每一个查询子句并不是完整的查询语句,都是跟上边查询语句的结合而形成的。这样可以减少代码的重复编写。
            最后利用循环语句,将查询到的结果写到表格中。

 


http://chatgpt.dhexx.cn/article/7LWRNs3T.shtml

相关文章

SQL组合查询知识

大多数SQL查询只从一个或者多表中返回数据都是单个select语句。但是SQL server允许多个select语句执行,它返回的结果是一个结果集,需要使用 union 组合 ,这些组合一般称为并(union)和复合查询(compound que…

组合查询

今天我们来学习一下组合查询的方法。什么叫组合查询,就是根据自己选择的内容进行数据查询。我们可以根据单个数据查询,也可以根据多个数据查询我们想要的内容。而我今天要讲的是根据学院、年级、班级还有学号和姓名进行查询的方法,我们首先打…

MySQL入门学习:组合查询

一、组合查询 多数SQL查询都只包含从一个或多个表中返回数据的单条SELECT语句。MySQL也允许执行多个查询(多条SELECT语句),并将结果作为单个查询结果集返回。这些组合查询通常称为并(union)或复合查询(comp…

SQL数据库的组合查询和统计查询

数据库的组合查询和统计查询 一、实验目的 对数据库进行组合查询和统计查询 二、实验内容 1、加深对SQL语言查询语句的理解 2、熟练掌握数据查询中的分组统计、计算和组合操作方法。 三、实验要求 在本题下面提交基本操作效果截图。 一,组合查询简单查询。 1、…

组合多个查询

紫色代表一级目录 粉红代表二级目录 蓝色代表三级目录 红色代表关键字 橙色代表说明 单查询与组合查询   单查询实例      使用了操作符UNION    组合查询操作符   UNION     UNION 操作符可以组合两个或多个 SELECT 语句的结果,不包含重复的记录。换…

[Mysql] 组合查询

组合查询可以将多个SELECT结果拼接在一起作为最终结果输出(输出组合成单个查询结果集) 当存在多个查询结果符合条件,需要将多个查询结果进行纵向拼接时,就会用到组合查询 如下图所示,如果需要查出的结果包含表A和表B两个部分,则…

MySQL必知必会:组合查询(Union)

本篇文章主要介绍使用Union操作符将多个SELECT查询组合成一个结果集。本文参考《Mysql必知必会》工作实践融合 组合查询 定义 在大多数开发中,使用一条SELECT查询就会返回一个结果集。如果,我们想一次性查询多条SQL语句,并将每一条SELECT查询…

组合查询——union

文章目录 1.组合查询2.创建组合查询2.1 使用union2.2 union规则2.3 包含或取消重复的行2.4 对组合查询结果排序 1.组合查询 组合查询指的是:在Mysql中执行多个查询,并将结果作为单个查询结果集返回。 这些组合查询通常称为并或复合查询。 以下2种情况&…

【SQL自学打卡|DAY13】——组合查询

前言 ❤欢迎大家阅读我的文章呀❤ 今天是SQL必知必会的最后一块练习。 希望你们在我的文章当中能有所收获!!! SLogan:利用有限的时间,撸起袖子加油干! 知识点回顾 内联结:inner join。取两列的交集。 外联…

PyCharm取消波浪线、下划线和中划线

默认情况下,PyCharm中如果有无法错误或者不符合PEP8规范代码下面会有波浪线,语法错误波浪线为红色(如下图的第10行),不符合PEP8规范为浅黄色波浪线(如下图的第8行),见下图&#xff1…

Python中下划线的含义及用法

看代码的时候,经常看到各种变量名带各种下划线,有单下划线、双下划线等,主要有五种下划线(按照下划线位置命名类型): 单下划线:_单下划线变量名:_var变量名单下划线:var…

Python 中下划线的 6 个作用

初学者看到 Python 中的下划线 _ 时可能会有些懵圈,不知道这个到底是干什么用的,今天就来盘点一下 Python 中的下划线有哪些用处。以后看到下划线时就可以对号入座了。 1、用在 Python 解释器,表示上一次的执行结果 即使不把 Python 用于编程…

html中的:下划线标签、中划线标签、斜体标记、粗体标记

<!-- 下划线标记 --><b>下划线标签&#xff1a;</b><u>u标签是下划线标签</u><br><!-- 中划线标签 --><b>中划线标题&#xff1a;</b><s>s是中划线标签</s><del>del也是中划线标签</del><br…

多种方法在Markdown加入上划线、中划线、下划线

上划线和下划线不是Markdown自身语法&#xff0c;因此需要一点摸索&#xff0c;特将结果记录于此 中划线 中划线是markdown自身语法&#xff0c;实现起来很简单&#xff1a; ~~中划线~~效果&#xff1a; 中划线 下划线 法一&#xff1a;借助Latex公式 $\underline{\text{…

UILabel,文字添加下划线,中划线

//显示下划线 //中划线 // NSDictionary *attribtDic {NSStrikethroughStyleAttributeName: [NSNumber numberWithInteger:NSUnderlineStyleSingle]}; //下划线 NSDictionary *attribtDic {NSUnderlineStyleAttributeName: [NSNumber numberWithInteger:NSUnderlineS…

CSS文本样式(中划线下划线行高之类的还有color也是)

1.颜色 2.对齐方式 3.首行缩进 4.行高 5.下划线&#xff08;装饰&#xff09; 6.文字跟图片对齐 1.颜色 颜色可以用 单词 表示也可以用 #RGB 表示 RGB代表的就是红绿蓝三种颜色 000000-FFFFFF 或者用 color&#xff1a;rgb&#xff08;0&#xff0…

为文字添加下划线和中划线

Android开发中如何给文字添加下划线和中划线呢&#xff0c;先看一下效果图&#xff1a; 下划线&#xff1a; 中划线&#xff1a; 方式一&#xff1a; //添加下划线 // textView.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);//添加中划线textView.getPaint().setFl…

Python中下划线的5种含义

作者&#xff1a;地球的外星人君 链接&#xff1a;https://zhuanlan.zhihu.com/p/36173202 来源&#xff1a;知乎 著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 分享一篇文章&#xff1a;The Meaning of Underscores in Python。 本文介…

Python中的下划线到底什么意思?

1. 概述 在Python经常能见到含下划线&#xff08;underscore&#xff09;修饰的的变量和方法&#xff08;如__name__&#xff0c;_var等&#xff09;&#xff0c;这些下划线的作用称之为名字修饰&#xff08;name decoration&#xff09;。在Python中&#xff0c;名字修饰通常…

WPF中的文字修饰——上划线,中划线,基线与下划线

我们知道&#xff0c;文字的修饰包括&#xff1a;空心字、立体字、划线字、阴影字、加粗、倾斜等。这里只说划线字的修饰方式&#xff0c;按划线的位置&#xff0c;我们可将之分为&#xff1a;上划线、中划线、基线与下划线。如图&#xff1a; 从上至下&#xff0c;分别为上划线…