日期:2014-05-16  浏览次数:20783 次

求SQL语句一条
有这样1个表,各字段类型均为 文本型

日期 小时 规格 备注
01 01 5 5CC600
01 02 6 7TG90
01 03 7 6tc1000
02 01 7 0sc1050
...

日期:01~31
小时:01~24(不重复)

要求实现:
  根据 “备注”中的除前3个字符后的值,统计出该值<=600且“规格”<=6,这种情况,出现的天数。

以上表为例,符合条件的记录有2条:
01 01 5 5CC600
01 02 6 7TG90
但由于都在同一天“01”,所以结果应该是1条,
那么这样的查询语句该怎么写?


------解决方案--------------------
SELECT 日期,COUNT(*) FROM (
SELECT 日期 FROM TTA WHERE VAL(规格)<=6 AND VAL(MID(备注,4,100))<=600 GROUP BY 日期) A
GROUP BY 日期

所以结果应该是1条:是总数还是明细?
------解决方案--------------------
SQL code
select count(*)
from (
    select disinct 日期 from 这样1个表 where val(mid(备注,4,10000)) <=600 and 规格<=6
)