У нас есть таблица без даты или добавочный столбец int, как показано ниже.
create table test(
id uniqueidentifier DEFAULT newsequentialid(),
userid int,
type int,
value varchar(20)
);
Нам нужен идентификатор пользователя со значением, основанным на следующих логиках c, первые данные в случае первичных данных else последние в случае другого типа.
Available type column value
-------------
0 - None
1 - Primary
2 - Other
3 - Registered
Logic to retrieve value should be as below :
if Primary available :
take "first" Primary's Value
else if Registered available :
take "last" Registered's Value
else if Other available :
take "last" Other's Value
else
take "last" None's Value
Создано несколько сценариев ios, чтобы лучше понять требования.
Сценарий 1:
/*
Output should be as below
userid, value
-------------
1, User1 value1.1
2, User2 value4.2
*/
insert into test (userid, type, value) values(1, 1, 'User1 value1.1')
insert into test (userid, type, value) values(1, 1, 'User1 value1.2')
insert into test (userid, type, value) values(1, 2, 'User1 value2.1')
insert into test (userid, type, value) values(1, 2, 'User1 value2.2')
insert into test (userid, type, value) values(1, 4, 'User1 value4.1')
insert into test (userid, type, value) values(1, 4, 'User1 value4.2')
insert into test (userid, type, value) values(2, 0, 'User2 value0.1')
insert into test (userid, type, value) values(2, 0, 'User2 value0.2')
insert into test (userid, type, value) values(2, 4, 'User2 value4.1')
insert into test (userid, type, value) values(2, 4, 'User2 value4.2')
Сценарий 2:
/*
Output should be as below
userid, value
-------------
3, User3 value1.1
4, User4 value4.2
*/
insert into test (userid, type, value) values(3, 0, 'User3 value0.1')
insert into test (userid, type, value) values(3, 1, 'User3 value1.1')
insert into test (userid, type, value) values(3, 2, 'User3 value2.1')
insert into test (userid, type, value) values(3, 2, 'User3 value2.2')
insert into test (userid, type, value) values(4, 4, 'User4 value4.1')
insert into test (userid, type, value) values(4, 4, 'User4 value4.2')
insert into test (userid, type, value) values(4, 2, 'User4 value2.1')
insert into test (userid, type, value) values(4, 0, 'User4 value0.1')
Сценарий 3:
/*
Output should be as below
userid, value
-------------
5, User5 value2.1
6, User6 value0.3
*/
insert into test (userid, type, value) values(5, 2, 'User1 value1.1')
insert into test (userid, type, value) values(5, 2, 'User1 value2.1')
insert into test (userid, type, value) values(5, 0, 'User1 value0.1')
insert into test (userid, type, value) values(6, 0, 'User6 value0.1')
insert into test (userid, type, value) values(6, 0, 'User6 value0.2')
insert into test (userid, type, value) values(6, 0, 'User6 value0.3')
Высоко ценю любую помощь.