小弟刚学sql就遇到一条语句,难以理解,求各位大侠给解析!

author author     2023-04-23     566

关键词:

SELECT
node.account_id,
node.name,
node.acc_num,
node.debit,
node.credit,
node.balance,
(COUNT(parent.name)-1)ASlevel,
node.lft,
node.rgt
FROMaccountsASnode,
accountsASparent
WHEREnode.lftBETWEENparent.lftANDparent.rgt
GROUPBYnode.name
ORDERBYnode.lft;

首先,你这个sql写的有问题,我先给你解释下这个sql吧
这其实就是一个分组查询语句
group by 是分组,它是按照你的node.name来进行分组,order by是排序
按照你的node.lft来进行排序。select后面跟的是你想要查询的数据,from后是表名,
表名后使用as是给表使用一个简短的别名,count()是统计你的parent.name的总和,,
(COUNT(parent.name)-1)AS level,这个的意思是计算出parent.name的总和减去一,
使用一个level这个字段来代表所查询出来的数据
但像你那样写肯定是执行不下去的。这是我修改后的sql
SELECT node.account_id,node.name,node.acc_num,node.debit,node.credit,node.balance,(COUNT(parent.name)-1)AS level,
node.lft,node.rgt
FROM accounts AS node,accounts AS parent WHERE node.lft BETWEEN parent.lft AND parent.rgt
GROUP BY node.account_id,node.name,node.acc_num,node.debit,node.credit,node.balance,node.lft,node.rgt
ORDER BY node.lft;
如有疑问,请联系我追答

count()它是一个聚合函数,主要就是求和,通过这个函数,就可以计算出来parent.name的总和,然后根据业务需要在总和的基础上减去一,使用别名level来表示

参考技术A select里面的
node.account_id,
node.acc_num,
node.debit,
node.credit,
node.balance,
node.lft,
node.rgt
这些东西加在里面有问题;
查的列名只能是groupby 后面的列名和聚合函数
参考技术B 这是一条查询统计个数语句,group by 进行分组 order by 进行升序
你这条语句也有问题group by 后面应该跟查询字段名啊
参考技术C GROUPBY是分组,这样的话,
node.account_id,
node.name
等等都必须出现在GROUPBY后面。

sql中,我想把sql查询分析器查询出来的结果,导出到excel表格,求各位大侠指点。

...符串可能会被自动转换成数字)在查询分析器里面执行SQL语句后选择查询的结果然后右键【将结果另存为】--选择保存类型【*.csv】3、全选你要保存的所有行,然后右击,然后选择copytoexcel就OK参考技术A方法1:在查询结果上,鼠... 查看详情

各位大神,matlab中如何将编写m函数文件与simulink之间相互调用,小弟刚学不久,求指点。最好能详细一点。

先按照m函数编程规范和要求,编写好自己所需的函数。特别关注好函数的输入,输出变量以及函数名。然后在simlink环境中,在simlink编辑菜单中选择加入函数功能框,在添加函数框中输入已编好的函数名即可。注意前后连接时的... 查看详情

eclipse中,一个包下定义的两个类中,其中的成员变量和成员方法名,可不可以相同啊?求大侠赐教,小弟不胜

eclipse中,一个包下定义的两个类中,其中的成员变量和成员方法名,可不可以相同啊?求大侠赐教,小弟不胜感参考技术A可以,自己建两个类试一下就可以了 查看详情

mssqldes数据加密解密,急求各位大虾帮帮小弟!

...之后,做SELECT查询,发现,"mingwen"里面的居然是空的,小弟试了N多方法,均不得其法,求各位大虾帮小弟,小弟不胜感激!!!!代码如下:CREATESYMMETRICKEYkey1WITHALGORITHM=DESENCRYPTIONBYPASSWORD='123456'GOOPENSYMMETRICKEYkey1DECRYPTIONBYPASSWORD='123... 查看详情

刚学数据库,遇到一道关于数据库sql语句的题目,实在不会,请高手帮忙解答一下,谢谢!

EMPLOYEE(ESSN,Ename,Sex,Salary,Dnumber),其中ESSN是主键,存储员工的信息,包括社会保险号、姓名、工资、所属部门号DEPARTMENT(Dnumber,Dname,MgrSSN)其中Dnumber是主键,存储部门信息,包括部门编号、名称、经理社会保险号PROJECT(Pnumber,Pname,Pcit... 查看详情

在sql存储过程中,如何声明变量,赋值变量。最好有具体语句配上实例。3q啦。谢谢各位大侠的帮忙

/*Sqlserver存储过程中怎么将变量赋值*/--SQL赋值语句DECLARE@test1INTSELECT@test1=111SET@test1=222--SQL函数赋值,假定count()是自定义函数DECLARE@test2INTSELECT@test2=COUNT(*)FROMsys.sysobjects--SQL存储过程赋值,直接传参处理(类似C语言中的指针吗)IFOBJ... 查看详情

sql7.0的数据库拷贝出来。从装机后数据可以恢复吗???怎么恢复请教各位大侠了??

...贝出来。待从装机后数据可以恢复吗???怎么恢复请教各位大侠了??你重装SQL,打开SQL,把你备份好的数据恢复就行了步骤:进入到SQL介面,右击数据库,所有任务,附加数据库就能把数据恢复!参考技术A可以,在企业管... 查看详情

急求各位大侠帮忙,缺文件core.dll,怎么办?

急求各位大侠帮忙,我安装完喋血街头,启动时缺文件core.dll,怎么办?谢谢啦啦啦啦参考技术A在网上下载一个core.dll文件,然后将下载的文件放进c:\windows\system32 参考技术Bhttp://hi.baidu.com/342433419/blog/item/5c272bd69c51222407088b8... 查看详情

一条sql语句在两个机器上执行速度不一样的问题

今天遇到这样一个问题,在一个服务器上,执行一条两个表嵌套查询的SQL语句,在SQL查询分析器里,执行的很慢,大概要1分钟左右才有结果,其实数据也就100多条,还有几次根本就不出现结果,就在那里查,也查不出来。于是... 查看详情

oracle怎样跟踪一条sql语句的执行过程?

...可能我说的步骤不对,不过我就是想知道这个一个过程!小弟先谢谢各位大虾了,帮帮忙分析一下……需要建立一张表来记录explainplanSETstatement_id='name'FOR(这里是你要调试的语句)SELECTA.OPERATION,OPTIONS,OBJECT_NAME,OBJECT_TYPE,ID,PARENT... 查看详情

江湖救急各位大侠小弟用java设计时用到jtable谁知道选择里面的记录时怎样使用监听事件啊valuechanged

选择记录改变时的监听!谢谢!!!!!添加表格的事件处理view.getTable().addMouseListener(newMouseListener()publicvoidmousePressed(MouseEvente)//鼠标按下时的处理publicvoidmouseReleased(MouseEvente)//鼠标松开时的处理publicvoidmouseEntered(MouseEvente)//鼠标... 查看详情

vm虚拟机为啥用ifconfig命令查看不到ip呢?导致无法连接到ssh,求各位大侠解惑.

你看下linux下网卡的配置文件先,或者虚拟机你网卡添加没有,还有就是你的命令路径对没有是不是在bin或者sbin下面再说原因,不要动不动就查百度,你提供的消息也不是很全参考技术A因为看ip的命令应该是ipconfig追问linux的命... 查看详情

mysql存储过程把sql语句返回结果赋给一个变量,该sql语句返回的结果不止一条,该怎么写,新手,求指教!

...键,有个导出数据,跟着步骤往下走就行了,期间很可能遇到数据类型转换的问题,快到最后一步时把包保存下来,报错的话,可以把包打开编辑一下。如果数据量小的话,导入excel里再导到mysql也好 参考技术B你可以建一个临时... 查看详情

通过一条语句的执行,深入理解innodb的底层架构

MySQL最常用的存储引擎是innodb,我们今天就借助一条更新语句的执行,了解下innodb具体是如何处理的,深入理解下它的架构。假设更新语句是这样的:updateusersetname='xxx'whereid=1;这条SQL语句发送到MySQL上... 查看详情

求助各位大神,小弟初学ibmdb2,求助关于数据库创建问题,多谢!!

...Y1文件夹,里面有命令窗口(-管理器)和命令行处理器,小弟想知道它们两个的区别。另外,我用命令行处理器创建数据库的时候,按照一本书上说的语句CREATEDATABASE创建数据库,出现错误提示(SQL1052N,数据库路径不存在)。我在... 查看详情

请问下各位大侠,小弟接触qt不到2个星期,想问下,用qt开发出的exe程序属性里如何能显示出版本的信息?

在MFC中好像有那么个窗口设置版本信息,但在QT上如何设置出来呢?请各位大侠指教。不胜感激。参考技术AWindows下的.exe可执行文件的属性中有版本这个信息,含有版本信息、描述、版权等。对于qt程序,要含有这样的信息,那... 查看详情

java网络通信如何使用字节类传送字节数据

各位大侠,你们好!小弟是一名学生,为了完成老师的一个作业,刚学java网络通信,是这样的,我想实现由java客户端控制台读入一串字符(包括中文),然后将这串字符存储在字节数组里面,并发到java服务器端,java服务器端... 查看详情

sql语句,求出现次数最多的组中,出现次数最多的一条数据

求写sql语句,求出现次数最多的组中,出现次数最多的一条数据。描述:sender是发信人,receiver是收信人,求一个sender,给收到最多信息的人,发的信息最多?我的思路是,对receiver分组count下,得到最大的那个receiver。以此作为... 查看详情