TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Forums
Monthly Leaders
Forum guidelines
First Last
NA
648
71.5k
How to create a 'list within a list' using a sql temp table
Apr 30 2021 6:40 PM
How to create a 'list within a list' using a sql temp table and then search threw it and do matching.
-----------
In a stored procedure.
I will read a DB table and build an internal table in SQL server to build 'My list'.
CREATE TABLE #t1_MyList
(
#t1_SelectionId int
)
'My list' data:
1
2
3
4
5
6
I will then read a DB table and build an internal table in SQL server to build a list of users and their selections. Each can have a different number of entries.
CREATE TABLE #t2_UsersSelectionsList
(
#t2_UserId int,
#t2_SelectionId int
)
-- Holds a User's selections data.
-- 1, 1
-- 1, 2
-- 1, 3
-- 1, 7
-- 1, 8
-- 1, 9
-- 2, 1
-- 2, 9
-- 3, 1
-- 3, 2
-- 3, 3
-- 3, 4
-- 3, 5
-- 3, 6
-- 4, 1
-- 4, 2
-- 4, 3
-- 4, 4
-- 4, 8
-- 4, 9
-- 5, 7
-- 5, 8
-- 5, 11
-- 6, 1
-- 6, 2
-- 6, 7
-- 6, 8
-- 6, 9
-- 6, 10
-- 6, 13
-- 6, 14
-- 7, 50
I then think I need to group each user and load into a 'list of lists.
CREATE TABLE #t3_AllUsersSelectionsListOfLists
(
#t3_UserId int,
#t3_ListOfLists ? -- How to define this? A list of by user
-- in the t2_UsersSelectionsList.
)
-- ‘All users selections list of lists’ data:
-- user 1:
-- 1, 2, 3, 7, 8, 9
-- user 2:
-- 1, 9
-- user 3:
-- 1, 2, 3, 4, 5, 6
-- user 4:
-- 1, 2, 3, 4, 8, 9
-- user 5:
-- 7, 8, 11
-- user 6:
-- 1, 2, 7, 8, 9, 10, 13, 14
-- user 7:
-- 50
I then will create 5 buckets to contain users.
CREATE TABLE #t4_ZeroPercentMatchList
(
#t4_UserId int
)
CREATE TABLE #t5_LessThan50PercentMatchList
(
#t5_UserId int
)
CREATE TABLE #t6_50PercentMatchList
(
#t6_UserId int
)
CREATE TABLE #t7_75PercentMatchList
(
#t7_UserId int
)
CREATE TABLE #t8_100PercentMatchList
(
#t8_UserId int
)
I want to match 'My list' to the #t3_AllUsersSelectionsListOfLists.
Iterating threw each entry in 'My list' to find matches in #t3_AllUsersSelectionsListOfLists. Iterating threw each entry in #t3_ListOfLists. Putting the matched entries 'user' into a bucket per percent of match.
CREATE TABLE #t9_BucketsListOfLists
(
#t9_MatchBucket varchar(5), -- '0%', '<50%', '50%', '75%', '100%'
#9_ListOfLists ? -- How to define this? A list of all:
-- #t4_ to #t8_.
)
-- Result - a 5 entry 'list of lists':
-- 0% bucket - 'My list' had no matches to this user(s)
-- user 5
-- user 7
-- <50% bucket - 'My list' had <50% to this user(s)
-- user 6
-- 50% bucket - 'My list' had a 50% to these user(s)
-- user 1
-- user 2
-- 75% bucket - 'My list' had a 75% to this user(s)
-- user 4
-- 100% bucket - 'My list' had a 100% to this user(s)
-- user 3
I will then return the #t9_BucketsListOfLists (the 5 percent buckets) a ‘list of lists’ back to the calling ASP.net web page
How do I write this in SQL server?
How do I set up this temp table structure for 'list of lists'?
Do I use a cursor to search or is there a better way?
Reply
Answers (
3
)
How to select PartFamilyId and FamilyStatus is active or (active and n
SSRS Report to Create Dynamic Columns