|
AskSQLTeam
Ask SQLTeam Question
0 Posts |
Posted - 2002-05-13 : 09:53:48
|
| Heljeeve writes "Within a range of value,say between 1000000 and 1999999 how many times 00-09,10-19,..90-99 will appear as last two digit and the no. also should be printed.I need the total count as output00-09 -1000010-19 -10000Input for the procedure is fromno and tonoFomno and tono will be 7 digit no." |
|
|
joldham
Wiseass Yak Posting Master
300 Posts |
Posted - 2002-05-13 : 12:56:59
|
| I hope this is what you mean. If it isn't, then please reply with sample table definitions and a table of results expected.Create Table Numbers1(the_number char(7))GoINSERT INTO NUMBERS1 VALUES('1000000')INSERT INTO NUMBERS1 VALUES('1000002')INSERT INTO NUMBERS1 VALUES('1000019')INSERT INTO NUMBERS1 VALUES('1000029')INSERT INTO NUMBERS1 VALUES('1200029')INSERT INTO NUMBERS1 VALUES('1200039')INSERT INTO NUMBERS1 VALUES('1400010')INSERT INTO NUMBERS1 VALUES('1400029')INSERT INTO NUMBERS1 VALUES('1999900')INSERT INTO NUMBERS1 VALUES('1999999')GOCREATE PROCEDURE get_the_number@fromno char(7),@tono char(7)ASSelect Case When (RIGHT(the_number,2)) <= '09' then '00-09 - ' + LEFT(the_number,5) When (RIGHT(the_number,2)) <= '19' then '10-19 - ' + LEFT(the_number,5) When (RIGHT(the_number,2)) <= '29' then '20-29 - ' + LEFT(the_number,5) When (RIGHT(the_number,2)) <= '39' then '30-39 - ' + LEFT(the_number,5) When (RIGHT(the_number,2)) <= '49' then '40-49 - ' + LEFT(the_number,5) When (RIGHT(the_number,2)) <= '59' then '50-59 - ' + LEFT(the_number,5) When (RIGHT(the_number,2)) <= '69' then '60-69 - ' + LEFT(the_number,5) When (RIGHT(the_number,2)) <= '79' then '70-79 - ' + LEFT(the_number,5) When (RIGHT(the_number,2)) <= '89' then '80-89 - ' + LEFT(the_number,5) else '90-99 - ' + LEFT(the_number,5) END group_number, Count(*) Count1from Numbers1WHERE LEFT(the_number, 5) BETWEEN LEFT(@fromno,5) and Left(@tono,5)GROUP BY Case When (RIGHT(the_number,2)) <= '09' then '00-09 - ' + LEFT(the_number,5) When (RIGHT(the_number,2)) <= '19' then '10-19 - ' + LEFT(the_number,5) When (RIGHT(the_number,2)) <= '29' then '20-29 - ' + LEFT(the_number,5) When (RIGHT(the_number,2)) <= '39' then '30-39 - ' + LEFT(the_number,5) When (RIGHT(the_number,2)) <= '49' then '40-49 - ' + LEFT(the_number,5) When (RIGHT(the_number,2)) <= '59' then '50-59 - ' + LEFT(the_number,5) When (RIGHT(the_number,2)) <= '69' then '60-69 - ' + LEFT(the_number,5) When (RIGHT(the_number,2)) <= '79' then '70-79 - ' + LEFT(the_number,5) When (RIGHT(the_number,2)) <= '89' then '80-89 - ' + LEFT(the_number,5) else '90-99 - ' + LEFT(the_number,5) END GOexec get_the_number '1000000', '1200000'Jeremy |
 |
|