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
| ALTER PROCEDURE reporting.InstallInfoLibreCLIAS
BEGIN
SET NOCOUNT ON;
IF OBJECT_ID('reporting.vInfoLibreCient', 'v') IS NOT NULL
DROP VIEW reporting.vInfoLibreCient;
DECLARE @col NVARCHAR(MAX);
DECLARE @sql NVARCHAR(MAX);
WITH ml
AS (SELECT '1' AS CB_Name,
1 AS CB_Pos,
'F_Comptet' AS CB_File
UNION
SELECT '1' AS CB_Name,
2 AS CB_Pos,
'F_Comptet' AS CB_File
UNION
SELECT '1' AS CB_Name,
3 AS CB_Pos,
'F_Comptet' AS CB_File
UNION
SELECT '1' AS CB_Name,
4 AS CB_Pos,
'F_Comptet' AS CB_File
UNION
SELECT '1' AS CB_Name,
5 AS CB_Pos,
'F_Comptet' AS CB_File
UNION
SELECT '1' AS CB_Name,
6 AS CB_Pos,
'F_Comptet' AS CB_File
UNION
SELECT '1' AS CB_Name,
7 AS CB_Pos,
'F_Comptet' AS CB_File
UNION
SELECT '1' AS CB_Name,
8 AS CB_Pos,
'F_Comptet' AS CB_File
UNION
SELECT '1' AS CB_Name,
9 AS CB_Pos,
'F_Comptet' AS CB_File
UNION
SELECT '1' AS CB_Name,
10 AS CB_Pos,
'F_Comptet' AS CB_File)
SELECT @col = COALESCE(@col + ',' + CAST(CB_Name AS VARCHAR) + '', '' + CAST(CB_Name AS VARCHAR) + '') + ' as ' + t.alias
FROM
(
SELECT ISNULL(QUOTENAME(s.CB_Name),'''''') AS CB_Name,
'Info' + CAST(ROW_NUMBER() OVER(
ORDER BY ISNULL(s.CB_Pos, ml.CB_Pos)) AS VARCHAR(3)) AS alias
FROM cbSysLibre s
RIGHT JOIN ml ON s.CB_Pos = ml.CB_Pos
AND s.CB_File = ml.CB_File
) AS t;
SET @sql = 'CREATE VIEW reporting.vInfoLibreCient (CT_Num,info1,info2,info3,info4,info5,info6,info7,info8,info9,info10) as SELECT CT_Num ,' + @col + ' FROM F_COMPTET WHERE CT_Type = 0';
EXEC (@sql);
--PRINT @sql
END; |
Partager