All pastes #1040 Raw Edit

Anonymous

public text v1 · immutable
#1040 ·published 2004-09-23 06:04 UTC
rendered paste body

		Update templist_{ID}
			Set number = 
				            Replace(
					     Replace(
					      Replace(
					       Replace(
						Replace(
						  Replace(
						    Replace(
						      Replace(
							number,
							' ',
							''
						      	), ')',
							''
						      	), '(',
							''
						   	), '-', 
							''
						  	), '[',
							''
							), ']',
							''
							), '.',
							''
							), ',',
							''
							);

		Update templist_{ID}
			Set number = substring(number, 2, length(number))
		Where number like '1%';
		
		Delete from templist_{ID} where round(number) = 0;
		
		Delete from templist_{ID} where length(number) > 10;
		
		Delete from templist_{ID} where number is Null or number = '';


		drop table if exists templist_{ID}_tmp;

		create table `templist_{ID}_tmp` (`number` bigint default NULL) ENGINE=MEMORY DEFAULT CHARSET=latin1;

		insert into templist_{ID}_tmp (number)
			select number from templist_{ID}
			order by number;

		delete from templist_{ID};

		Alter table templist_{ID} 
			add column npa smallint(3) zerofill default NULL,
			add column nxx smallint(3) zerofill default NULL,
			add column nnnn smallint(4) zerofill default NULL,
			add column loc varchar(10) default NULL,
			add column state varchar(2) default NULL,
			add column ocn varchar(5) default NULL,
			add column lata mediumint(5) zerofill default NULL,
			add column tier varchar(20) default NULL,
			add column rate decimal(6,4) default NULL;

		ALTER TABLE templist_{ID} MODIFY number BIGINT NOT NULL;

		insert into templist_{ID} (number)
			select number from templist_{ID}_tmp;

		drop table templist_{ID}_tmp;

		Update templist_{ID}
		Set 	npa 	= substring(number, 1, 3), 
			nxx 	= substring(number, 4, 3),
			nnnn 	= substring(number, 7, length(number));

		Alter table templist_{ID} 
			ADD INDEX (`npa`), ADD INDEX (`nxx`), ADD INDEX (`nnnn`), ADD INDEX(`number`);

		ANALYZE table templist_{ID};

		Update templist_{ID} 
			Set lata = 
				(Select l.lata 
					from lerg l Where 
						l.npa = templist_{ID}.npa and l.nxx = templist_{ID}.nxx
						and templist_{ID}.nnnn between l.linefr and l.lineto
						and ((l.lineto - templist_{ID}.nnnn) + (templist_{ID}.nnnn - l.linefr)) = 
						(select ceiling(lg.lineto - templist_{ID}.nnnn) + ceiling(templist_{ID}.nnnn - lg.linefr) from 
							lerg lg where 
							lg.nxx = templist_{ID}.nxx and lg.npa = templist_{ID}.npa
							and  templist_{ID}.nnnn between lg.linefr and lg.lineto
							limit 1
						)
				),
			ocn = 
				(Select l.ocn 
					from lerg l Where 
						l.npa = templist_{ID}.npa and l.nxx = templist_{ID}.nxx
						and templist_{ID}.nnnn between l.linefr and l.lineto
						and ((l.lineto - templist_{ID}.nnnn) + (templist_{ID}.nnnn - l.linefr)) = 
						(select ceiling(lg.lineto - templist_{ID}.nnnn) + ceiling(templist_{ID}.nnnn - lg.linefr) from 
							lerg lg where 
							lg.nxx = templist_{ID}.nxx and lg.npa = templist_{ID}.npa
							and templist_{ID}.nnnn between lg.linefr and lg.lineto
							limit 1
						)
				),
			loc = 
				(Select l.locname 
					from lerg l Where 
						l.npa = templist_{ID}.npa and l.nxx = templist_{ID}.nxx
						and templist_{ID}.nnnn between l.linefr and l.lineto
						and ((l.lineto - templist_{ID}.nnnn) + (templist_{ID}.nnnn - l.linefr)) = 
						(select ceiling(lg.lineto - templist_{ID}.nnnn) + ceiling(templist_{ID}.nnnn - lg.linefr) from 
							lerg lg where 
							lg.nxx = templist_{ID}.nxx and lg.npa = templist_{ID}.npa
							and templist_{ID}.nnnn between lg.linefr and lg.lineto
							limit 1
						)
				),
			state = 
				(Select l.locstate
					from lerg l Where 
						l.npa = templist_{ID}.npa and l.nxx = templist_{ID}.nxx
						and templist_{ID}.nnnn between l.linefr and l.lineto
						and ((l.lineto - templist_{ID}.nnnn) + (templist_{ID}.nnnn - l.linefr)) = 
						(select ceiling(lg.lineto - templist_{ID}.nnnn) + ceiling(templist_{ID}.nnnn - lg.linefr) from 
							lerg lg where 
							lg.nxx = templist_{ID}.nxx and lg.npa = templist_{ID}.npa
							and templist_{ID}.nnnn between lg.linefr and lg.lineto
							limit 1
						)
				);

		Update templist_{ID}
			Set rate = (Select rate 
					from x5 Where
						templist_{ID}.npa = x5.npa
						and templist_{ID}.nxx = x5.nxx
					Limit 1
				);