id(唯一编号) name(名称) type(所属类型)
1 水果 1
2 苹果 1
3 香蕉 1
4 玩具 4
5 泰迪熊 4
6 变形金刚 4
7 流氓兔 4
要求统计后,是大类的,后面显示小类品种的总数,如果是小类,后面就是大类的名称,要求最后的查询如下
id(唯一编号) name(名称) 数量或类型
1 水果 2
2 苹果 水果
3 香蕉 水果
4 玩具 3
5 泰迪熊 玩具
6 变形金刚 玩具
7 流氓兔 玩具
各位高手帮忙分析下,这个SQL语句应该怎么写啊,谢谢!!!
USE test
GO
-->生成表tb
if object_id('tb') is not null
drop table tb
Go
Create table tb([id] smallint,[name] nvarchar(4),[type] smallint)
Insert into tb
Select 1,N'水果',1
Union all Select 2,N'苹果',1
Union all Select 3,N'香蕉',1
Union all Select 4,N'玩具',4
Union all Select 5,N'泰迪熊',4
Union all Select 6,N'变形金刚',4
Union all Select 7,N'流氓兔',4
--------------- 1.
SELECT
b.id AS [唯一编号]
,b.name AS [名称]
,CASE WHEN b.id<>b.type THEN a.name ELSE LTRIM((SELECT COUNT(1) FROM tb AS x WHERE x.type=a.id AND x.id<>a.id)) END AS [数量或类型]
FROM tb AS a
LEFT JOIN tb AS b ON a.id=b.type
WHERE a.id=a.type
ORDER BY [唯一编号]
/*
唯一编号 名称 数量或类型
------ ---- ------------
1 水果 2
2 苹果 水果
3 香蕉 水果
4 玩具 3
5 泰迪熊 玩具
6 变形金刚 玩具
7 流氓兔 玩具
*/
--------------- 2.
SELECT
id AS [唯一编号]
,name AS [名称]
,LTRIM((SELECT COUNT(1) FROM tb AS x WHERE x.type=a.id AND x.id<>a.id)) AS [数量或类型]
FROM tb AS a
WHERE a.id=a.type
UNION ALL
SELECT
b.id
,b.name
,a.name
FROM tb AS a,tb AS b
WHERE a.id=b.type
AND a.id<>b.id
AND a.id=a.type
ORDER BY [唯一编号]
/*
唯一编号 名称 数量或类型
------ ---- ------------
1 水果 2
2 苹果 水果
3 香蕉 水果
4 玩具 3
5 泰迪熊 玩具
6 变形金刚 玩具
7 流氓兔 玩具
*/
现有表结构 create table INFOS ( ID VARCHAR2(30) not null, NAME VARCHAR2(30), CREATE_TIME DATE ) ...需要统计 CREATE_TIME 从2009年到2012年,每年的记录数量 ...分不多,请帮忙,谢了
napolone1983 oracle执行select操作,返回的结果集存放在什么位置?结果集中保存的是rowid集合还是真实的数据?返回的结果集是放在PGA区域么?如果返回的是真实的数据,那么如果数据量过大会不会造成内存溢出?...
基础类 - SQL语句 <br />转载请标明出处: http://blog.csdn.net/hz/archive/2006/03/01/613376.asp 本文来自 CSDN 博客。x sql server 怎么跨库查询? 如何判断字符的大小写 ? 如何...
--语句功能--数据操作SELECT--从数据库表中检索数据行和列INSERT--向数据库表添加新数据行DELETE--从数据库表中删除数据行UPDATE--更新数据库表中的数据--数据定义CREATETABLE--创建一个数据库表DROPTABLE--从数据库...
需求是一个大家常见的功能.博客中.对博客的时间索引归档.msn space就有这种功能.为了让热心的朋友了解.我把需求详细讲述一下: 博客中.通常有一个归档.即显示统计用户一年当中每个月份发表的文章数.如果用户那个月...
pupstar (v5star) 等 级: 结帖率:100.00% 楼主发表于:2010-01-02 16:42:10我现在有一张表: 列名1 时间 03174190188 2009-11-01 07:17:39.217 015224486575 2009-11-01 08:01
--语 句 功 能 --数据操作 SELECT --从数据库表中检索数据行和列 INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE --更新数据库表中的数据 ...CREATE TABLE --创建一个数据库表 DROP
数据分析侠A的成长故事面包君 同学A:22岁,男,大四准备实习,计算机专业,迷茫期作为一个很普通的即将迈入职场的他来说,看到周边的同学都找了技术开发的岗位,顿觉自己很迷茫,因为自己不是那么喜欢钻研写代码,...
SQL语句集锦 --语 句功 能--数据操作SELECT--从数据库表中检索数据行和列INSERT--向数据库表添加新数据行DELETE--从数据库表中删除数据行UPDATE...
来源于FineReport学习计划表 https://bbs.fanruan.com/thread-77147-1-1.html中的SQL自学部分。...作为一个曾经已经SQL入门过了的人再来撸这套题,相对容易些。既然撸出来了,就来发个帖,一为知识分享,二为记录备忘。
一些常见sql语句整理很早以前就在edaily里收藏了一些sql语句,都很简单.不过看到itpub里大家总是翻来覆去的问相同的问题.今天稍微做一个整理.发到blog上.[@more@]1,删除重复记录. delete from ...
SQL语句集锦--语 句 功 能--数据操作SELECT --从数据库表中检索数据行和列INSERT --向数据库表添加新数据行DELETE --从数据库表中删除数据行UPDATE --更新数据库表中的数据--数据定义CREATE TABLE --创建一个...
SQL语句集锦 --语 句功 能--数据操作SELECT--从数据库表中检索数据行和列INSERT--向数据库表添加新数据行DELETE--从数据库表中删除数据行UPDATE--更新数据库表中的数据--数据定义CREATE TABLE--创建一个数据库表...
当时使用的数据库是SQL Server 2000,也是特意为了学习这个数据库的使用,其实程序所涉及的数据很少,用Access就可以解决了。答应师弟帮忙,但是打开程序之后,却发现自己也不会了。呵呵,没办法,记性不好!上网...
晴天 发表于 2004-10-26 11:16:00 ...SQL语句集锦 --语 句功 能 --数据操作 SELECT--从数据库表中检索数据行和列 INSERT--向数据库表添加新数据行 DELETE--从数据库表中删除数据行 UPDATE...
距离上一次主动找工作,快到5年了,到现在的东家,是差不多3年前猎头挖过来的,而当时东家刚刚被欧洲一家有百年历史的跨国企业集团收购,所以我也就有幸成了一名“外企员工”,但是...
http://www.importnew.com/22083.html http://www.importnew.com/22087.html http://ifeve.com/questions/?sort=views 作者:Hjyilu 链接:...amp;amp;amp;amp;order=3&......
讲诉python爬虫的20个案例 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
2020年美赛优秀论文集,论文为完整版,包含附录,可以上手实操,不过全为英文,推荐结合CopyTranslator阅读:https://copytranslator.github.io/
visio_2016下载安装,亲测可用,不需要破解,而且无秘钥。简单方便实用
也许是中国第一个讲解android驱动的课程,涵盖: bootloader,内核移植,INIT进程,框架(BINDER IPC,SERVICE FRAMEWORK Activity Manager Serive,JNI,HAL等),binder驱动,logger,Ashmen,电源管理,常用驱动(如灯光系统,
包含2020美赛所有题目的所有O奖论文,A题8篇,B题5篇,C题6篇,D题7篇,E题5篇,F题6篇。
2020年美赛C题O奖论文(含6篇)
此文档有详细奥特曼大全及关系明细