1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| SET NOCOUNT ON;
DECLARE @table VARCHAR(20);
DECLARE @i VARCHAR(3),@j INT;
DECLARE @descriptif VARCHAR(50);
DECLARE @PrixMin AS DECIMAL(10,2),@PrixMax AS DECIMAL(10,2);
DECLARE @ItemPalier AS INT,@Items AS INT;
DECLARE C_CP CURSOR
FOR
SELECT typebien_id,dbo.NettoyageURL(descriptif) FROM typebien;
OPEN C_CP
FETCH C_CP INTO @i,@descriptif
WHILE @@FETCH_STATUS = 0
BEGIN
SET @table='moteur_textuel_b'+@i;
IF (OBJECT_ID('dbo.'+@table) IS NULL)
BEGIN
EXECUTE ('CREATE TABLE [dbo].'+@table+'([mt_id] [bigint] IDENTITY(1,1) NOT NULL,[colonnedescriptif] [varchar](50) NOT NULL,'+
'[nombreannonce] [bigint] NULL,[colonnetype] [varchar](50) NOT NULL,'+
'[colonneidentifiant] [varchar](50) NULL,[colonneURL] [varchar](1024) NULL,'+
'[prixmin] [decimal](15, 2) NULL,[prixmax] [decimal](15, 2) NULL,CONSTRAINT [PK_MT_b'+@i+'] PRIMARY KEY CLUSTERED'+
'([mt_id] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]'+
') ON [PRIMARY]');
END
ELSE
BEGIN
EXECUTE ('DELETE '+@table+';');
END
--TRANSACTION
EXECUTE ('INSERT INTO '+@table+' (colonneidentifiant,colonnedescriptif,nombreannonce,colonnetype,colonneurl) '+
'SELECT transaction_id,transaction_descriptif,COUNT(*),''t'',''http://www.visiteonline.fr/annonce-immobiliere/''+dbo.NettoyageURL(transaction_descriptif)+''-'+@descriptif+',''+CAST(transaction_id AS VARCHAR(2))+'','+@i+',0.htm'' ' +
'FROM moteur_textuel '+
'WHERE typebien_id='+@i+' GROUP BY transaction_id,transaction_descriptif;');
--REGION
EXECUTE ('INSERT INTO '+@table+' (colonneidentifiant,colonnedescriptif,nombreannonce,colonnetype,colonneurl) '+
'SELECT region,region,COUNT(*),''l'',''http://www.visiteonline.fr/annonce-immobiliere/'+@descriptif+'-''+dbo.NettoyageURL(Region)+'',0,'+@i+',r_''+dbo.NettoyageURL(region)+''.htm'' '+
'FROM moteur_textuel '+
'WHERE typebien_id='+@i+' GROUP BY region;');
--PRIX
SET @ItemPalier = (SELECT ROUND(COUNT(*)/5,0) FROM moteur_textuel WHERE typebien_id=@i);
SET @PrixMin=(SELECT MIN(prix) FROM moteur_textuel WHERE typebien_id=@i);
SET @PrixMax=(SELECT MAX(prix) FROM moteur_textuel WHERE typebien_id=@i);
SET @PrixMax =(SELECT MAX(prix) FROM (SELECT TOP (@ItemPalier) prix FROM moteur_textuel WHERE typebien_id=@i ORDER BY prix) T);
SET @Items=(SELECT COUNT(*) FROM moteur_textuel WHERE typebien_id=@i AND prix<=@PrixMax);
EXECUTE ('INSERT INTO '+@table+' (colonnedescriptif,nombreannonce,colonnetype,prixmin,prixmax) '+
'VALUES (''de '+CAST(@PrixMin AS VARCHAR(10))+' à '+CAST(@PrixMax AS VARCHAR(10))+''','''+CAST(@Items AS VARCHAR(10))+''',''p'','''+CAST(@PrixMin AS VARCHAR(10))+''','''+CAST(@PrixMax AS VARCHAR(10))+''');');
-- SET @j=1;
-- WHILE @j<4
-- BEGIN
-- SET @PrixMin=@PrixMax+1;
-- SET @PrixMax =(SELECT MAX(prix) FROM (SELECT TOP (@ItemPalier) prix FROM moteur_textuel WHERE typebien_id=@i AND prix>@PrixMax ORDER BY prix) T);
-- SET @Items=(SELECT COUNT(*) FROM moteur_textuel WHERE typebien_id=@i AND prix<=@PrixMax AND prix>@PrixMin);
-- SELECT ('INSERT INTO visiteonline6.dbo.'+@table+' (colonnedescriptif,nombreannonce,colonnetype,prixmin,prixmax) '+
-- 'VALUES (''de '+SUBSTRING(CAST(@PrixMin AS VARCHAR(15)),1,LEN(CAST(@PrixMin AS VARCHAR(15)))-3)+' à '+SUBSTRING(CAST(@PrixMax AS VARCHAR(15)),1,LEN(CAST(@PrixMax AS VARCHAR(15)))-3)+''','''+CAST(@Items AS VARCHAR(15))+''',''p'','''+CAST(@PrixMin AS VARCHAR(15))+''','''+CAST(@PrixMax AS VARCHAR(15))+''')');
-- SET @j=@j+1
-- END
--
-- SET @PrixMin=@PrixMax+1;
-- SET @PrixMax =(SELECT MAX(prix) FROM moteur_textuel WHERE typebien_id=1);
-- SET @Items=(SELECT COUNT(*) FROM moteur_textuel WHERE typebien_id=1 AND prix<=@PrixMax AND prix>@PrixMin);
-- SELECT ('INSERT INTO visiteonline6.dbo.'+@table+' (colonnedescriptif,nombreannonce,colonnetype,prixmin,prixmax) '+
-- 'VALUES (''de '+SUBSTRING(CAST(@PrixMin AS VARCHAR(15)),1,LEN(CAST(@PrixMin AS VARCHAR(15)))-3)+' à '+SUBSTRING(CAST(@PrixMax AS VARCHAR(15)),1,LEN(CAST(@PrixMax AS VARCHAR(15)))-3)+''','''+CAST(@Items AS VARCHAR(15))+''',''p'','''+CAST(@PrixMin AS VARCHAR(15))+''','''+CAST(@PrixMax AS VARCHAR(15))+''')');
FETCH C_CP INTO @i,@descriptif
END
CLOSE C_CP
DEALLOCATE C_CP |
Partager