ฉันมีโต๊ะกับความช่วยเหลือจากค่าอย่าง:ยืนยันตัวตนของตัวเองหมายเลขโทรศัพท์,คนชื่อเป็นต้น อยู่ในโต๊ะนี้ด้วยกันถ้าเป็นคนมีมากกว่าหนึ่งหมายเลขโทรศัพท์ใครคนนั้นจะปรากฎหลายครั้งกันและทำซ้ำกับอีกหมายเลขโทรศัพท์ที่ตรงกับคนคนนั้น
เป้าหมายของฉันคือต้องเขียนเคอร์เซอร์ที่จะเพิ่มความแตกต่างโทรศัพท์เป็นคนที่มีด้วยการโดดครั้งเดียวค่าโทรศัพท์ใหม่โต๊ะกันของพวกเขาแยกกันโดย','. ในทางนั้นแต่ละคนเดียวที่จะปรากฏครั้งหนึ่งในโต๊ะแต่หมายเลขโทรศัพท์ค่าจะต้องได้อันที่หมายเลขโทรศัพท์นั่นคนที่เป็นเจ้าของแยกโดย','.
ฉันต้องมากับเรื่องแบบนี้:
อยู่นี่ฉันสร้าง"normalized"โต๊ะนั่นคนหาข้อมูลควรจะแทรก:
CREATE TABLE IF NOT EXISTS Telefono_General_V2 (Cedula_v2 varchar(50),Nombre_v2 varchar(50),Cantidad int, Telefono_v2 varchar(max))
นี่เป็นชั่วคราวออกโต๊ะเพื่อเลือกคนหาหมายเลขนั่นเป็นอีกหลายครั้ง,หมายความว่ามันมีหลายหมายเลขโทรศัพท์(Telefonos_General เป็นโต๊ะฉันได้ข้อมูลจาก).
SELECT Cedula_v1 AS Cedula, COUNT(1) AS cantidad_repetidos
INTO #DatosRepetidosTemp
FROM Telefonos_General
GROUP BY Cedula_v1
HAVING COUNT(1) >1
ที่นี่ฉันประกาศที่ตัวแปรที่ใช้ในเคอร์เซอร์:
DECLARE
@Cedula varchar(50),
@Cuenta int,
@Prev_Telefono varchar(max),
@Telefonos varchar(max)
แล้วประกาศเคอร์เซอร์เอง:
DECLARE cursor_telefonos CURSOR FOR
SELECT TOP (100) Cedula, cantidad_repetidos, Telefono_v1
FROM #DatosRepetidosTemp
JOIN Telefonos_General on Cedula_v1 = Cedula
WHERE Cedula is not null
เริ่มที่เคอร์เซอร์:
OPEN cursor_telefonos
FETCH NEXT FROM cursor_telefonos
INTO @Cedula, @Cuenta, @Prev_Telefono
WHILE @@FETCH_STATUS = 0
BEGIN
IF @Telefonos = NULL
SET @Telefonos = @Prev_Telefono
ELSE
นี่คือในขณะที่วงนั้นคือคืน@Prev_Telefono เป็นโพรโทคอล aimcomment ตอนที่มันควรจะเป็นคน(@Telefonos+','+@Prev_Telefono).
WHILE @Cuenta != 0
BEGIN
SET @Telefonos = @Telefonos+ ', ' + @Prev_Telefono
SET @Prev_Telefono = @Telefonos
SET @Cuenta = @Cuenta - 1
END
INSERT IGNORE INTO Telefono_General_V2 (Cedula_v2, Cantidad, Telefono_v2)
VALUES (@Cedula, @Cuenta, @Telefonos)
FETCH NEXT FROM cursor_telefonos INTO @Cedula, @Cuenta, @Telefonos
นี่ฉันเพิ่งปิดเคอร์เซอร์:
END
CLOSE cursor_telefonos
DEALLOCATE cursor_telefonos
บางคนรู้ว่าทำไมของฉันในขณะที่วงคือฤติกรรมโรคจิต--การแทรโพรโทคอล aimcomment บโทรศัพท์ใหม่โต๊ะตอนที่มันควรจะเป็นการเพิ่มรายการขอหมายเลขโทรศัพท์ของผู้ชายคนนั้นใช่มั้ย
ขอบคุณมากสำหรับความสนใจของคุณ!!