select-年龄段查询,在时间段的年龄没有数据,就输出0

问题描述

年龄段查询,在时间段的年龄没有数据,就输出0

SELECT CASE WHEN AGE <= 10 THEN '1' WHEN AGE > 10 AND AGE <= 20 THEN '2' WHEN AGE > 20 AND AGE <= 30 THEN '3' WHEN AGE > 30 AND AGE <= 40 THEN '4' WHEN AGE > 40 AND AGE <= 50 THEN '5' WHEN AGE > 50 AND AGE <= 60 THEN '6' WHEN AGE > 60 AND AGE <= 70 THEN '7' WHEN AGE > 70 AND AGE <= 80 THEN '8' WHEN AGE > 80 AND AGE <= 90 THEN '9' WHEN AGE > 90 AND AGE <= 100 THEN 'a' WHEN AGE > 100 THEN 'b' END allshuju ,COUNT(*) renshu,OUT_WAY leibie FROM WORK_BASY_DATA where OUT_DT >= '2012-10-1' and OUT_DT <='2012-10-31' GROUP BY allshuju,OUT_WAY having OUT_WAY!='' AND allshuju!=''

解决方案

建议你:
1) 最好是排一下版面
2) 说明具体的问题

解决方案二:

你把条件逐个去掉,或者逐个增加,看看哪个条件影响了你的结果

解决方案三:

年龄段查询,在时间段的年龄没有数据,就输出0

你写的SQL有语法错误吧

1--首先指出这个SQL不文有错误
GROUP BY allshuju,OUT_WAY
那么你的select列表的AGE是不是就错了阿。使用了groupby 时候,select的列表项目应该和group by 一致或者是其他项目的聚集函数
你现在的列表中有 AGE,OUT_WAY leibie

你看这两个OUT_WAY leibie 之间没有逗号阿

2--这个查询要逐层进行分解然后再组合进行。采用倒推法来看看
你可以这样思考,什么样的表输出结构你可以简单聚集得到你想要的结果
你看是不是下面这种
leibie AGE renshu
x 1 10
y 2 2
... ... ...

    你在想想如何得到上面的结构呢?
    肯定有分组和聚集操作

    第一步:
    按照你写的SQL文,把这个leibie ,age 也写入到 group by的子句中,我们得到如下输出
    liebie      age
    x              1
    y               1
    z               2
    d               1
    ...               ...
    等这样的数据结构

    第二步
    将第一步的结果作为查询结果集,比如 temp吧
    select  temp.age ,count(*) as renshu
    from temp group by temp.age

    至于你想输出什么结果自己发挥把
时间: 2024-11-02 21:59:36

select-年龄段查询,在时间段的年龄没有数据,就输出0的相关文章

方法-按年龄段查询的问题 请大神帮

问题描述 按年龄段查询的问题 请大神帮 oracle数据库中存了 字段age 数据类型varchar2 值为 1天 2天 ... 30天 1月 2月 ... 12 月 1岁 2岁 ... 100岁 (值不连续且无序) 现要在jsp页面查出某一年龄段内的所有数据 求方法 解决方案 sql语句用 select * from 当前表 where age between 年龄段1 and 年龄段2, 解决方案二: 先加个字段age2,用下面的语句统一格式为 '000岁00月000天',就可以查了 UPD

oracle-Oracle查询一定时间段内每一段时间数据问题

问题描述 Oracle查询一定时间段内每一段时间数据问题 我有这样一张业务表,表结构如下 (ID) 住宿时间 押金金额 退宿时间 住宿费用 00000001 2009-09-21 50 2009-09-28 30 00000001 2009-09-25 50 2009-09-27 30 00000002 2009-09-25 80 2009-09-28 50 00000003 2009-09-28 90 2009-09-30 40 ........ .. .......... .. ......

mysql-Mysql 数据库根据生日(birthday)查询年龄的数据

问题描述 Mysql 数据库根据生日(birthday)查询年龄的数据 Mysql 数据库根据生日(birthday)查询年龄的数据,精确到天 N 代表 年龄 查询出 大于N 等于N 小于N 的数据出来 解决方案 可以用当前日期去比对 解决方案二: SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(birthday)), '%Y')+0 AS age FROM 表名; 解决方案三: http://blog.chinaunix.net/uid-

SQLServer查询某个时间段购买过商品的所有用户

goods表如下: name time product A 2016-1-2 13:23:00 WFEY B 2016-2-17 11:43;34 ASG A 2017-1-10 15:23:00 SGH C 2015-4-5 13:47:20 HRT C 2016-7-12 19:56:03 XCC A 2017-3-4 14:00:00 ESFW SELECT DISTINCT OO.name FROM (SELECT name,DATE_FORMAT(time , '%h:%m') AS

mysql 查询固定时间段问题

问题描述 mysql 查询固定时间段问题 查询一个表中这一周的时间,这一天的时间,这一个月的时间的数据 解决方案 mysql按时间段查询MySql查询时间段django 查询时间段

hql-hibernate框架 使用sql语句 select count查询不到。。

问题描述 hibernate框架 使用sql语句 select count查询不到.. 代码 String sql = "select count(servId) from "+set; sess=sessionFactory.openSession(); tx=sess.beginTransaction(); Query query = sess.createSQLQuery(sql); BigDecimal count = (BigDecimal)query.uniqueResul

查询该时间段内的某个时间段

先看看图片 -要求 刚开始呢 我只是简单的认为查询开始和结束时间之间的就可以了. select * from  table fp where WHERE fp.preferential_start_time >= ' 2012-12-11 10:31:36.0' and fp.preferential_end_time <= '2012-12-28 10:31:36.0'  但是这样是查询不出来数据的. 结果sql语句是需要这样来写: select * from table fp where 

使用SQL查询DB2 9中的XML数据

虽然 DB2 的混合体系结构与之前的版本有很大的不同,但是要利用它的新 XML 功能并不难.如果您已经熟悉 SQL,那么很快就可以将这方面的技能转化到对存储在 DB2 中的本地 XML 数据的处理上.通过本文就可以知道如何实现这一点. DB2 Viper(就是DB2 9)中的 XML 特性包括新的存储管理.新的索引技术以及对查询语言的支持.在本文中,学习如何使用 SQL 或带 XML 扩展的 SQL(SQL/XML)查询 DB2 XML 列中的数据.接下来的文章将讨论 DB2 中新引入的对新兴的

mysql判断查询结果是否存在,存在输出1不存在输出0

问题描述 mysql判断查询结果是否存在,存在输出1不存在输出0 IF EXISTS (SELECT * FROM table WHERE condition) SELECT '1' ELSE SELECT '0'; 类似这种语义,mysql中可以实现吗 解决方案 IFNULL(a,b) 如果a不是NULL IFNULL()返回a,否则它返回b 或者 set @c = (SELECT count(*) as c FROM table WHERE condition) if(@c>0) then