PDA

View Full Version : طراحی جداول Tag



fakhravari
پنج شنبه 09 مرداد 1393, 21:55 عصر
جداول تگ بلاگفا.

به این صورت کار میشه؟؟

http://fakhravary.blogfa.com/tag/%DA%A9%D8%A7%D9%85%D9%BE%D9%88%D9%86%D9%86%D8%AA


مثلا هر مطلب یک فیلد تگ داره که > مثال مطلب چند خطی در مولتی لاین
Tag :


asp
Multi
چند خطی

که اینا در یک رشته با + از هم جدا میشن.


بعد با یک Query میتوان تعداد هر یک را بدست بیاری!




دوستان کمکی کنند در مورد پیاده سازیش

fakhravari
جمعه 10 مرداد 1393, 13:25 عصر
نتیجه کار خودم
ALTER PROC GetTag(@TableName nvarchar(20)=N'Table1',@ID nvarchar(50)=N'ID',@Text nvarchar(50)=N'Text')as
Declare @Tb1 Table (ID int , [Text] NVARCHAR(100));INSERT INTO @Tb1 EXEC ('SELECT '+@ID+','+@Text+' FROM '+@TableName);


Declare @Tb2 Table (ID int , [Text] NVARCHAR(100))
DECLARE @ID2 NVARCHAR(MAX),@Text2 NVARCHAR(MAX)

DECLARE Table_Cursor CURSOR
FOR
SELECT [ID],[Text] FROM @Tb1
OPEN Table_Cursor FETCH NEXT FROM Table_Cursor INTO @ID2,@Text2
WHILE (@@FETCH_STATUS = 0)
BEGIN


INSERT INTO @Tb2 SELECT * FROM dbo.SplitString(@Text2,'+',@ID2)

FETCH NEXT FROM Table_Cursor INTO @ID2,@Text2
END CLOSE Table_Cursor DEALLOCATE Table_Cursor

--SELECT [ID],[Text] FROM @Tb2


Declare @Tb3 Table ([Text] NVARCHAR(100)); INSERT INTO @Tb3 SELECT DISTINCT [Text] FROM @Tb2;


Declare @Tb4 Table ([Text] NVARCHAR(100))
INSERT INTO @Tb4 SELECT [Text]+' ('+CAST((SELECT COUNT(*) FROM @Tb2 WHERE [Text] like '%'+[@Tb3].Text+ '%')AS NVARCHAR)+')' FROM @Tb3


SELECT [Text] FROM @Tb4


--EXEC GetTag