22 lines
1.4 KiB
Transact-SQL
22 lines
1.4 KiB
Transact-SQL
CREATE PROCEDURE [BO_GetKnokserProfile]
|
|
@KnokserId BIGINT
|
|
AS
|
|
SELECT k.UserId, k.UserName, k.FirstName, k.LastName, k.[Rank] as KnokserRank, k.HasAvatar,
|
|
ISNULL(follow.UserFollowers, 0) UserFollowers, ISNULL(purchases.UserKnoks, 0) Purchases,
|
|
(CASE WHEN EXISTS( select 1 from UserFollows e where e.UserId = @KnokserId and e.FollowUserId = k.UserId)
|
|
THEN CAST (1 AS BIT) ELSE CAST (0 AS BIT) END) IsFollowed,
|
|
k.RegistrationDate, 0 as RatingPoints,
|
|
(SELECT SUM(acctran.Amount)
|
|
FROM [dbo].[AccountTransactions] acctran
|
|
INNER JOIN Signals knok ON knok.KnokId = acctran.KnokId
|
|
WHERE acctran.AccountTransactionTypeId = 8 AND acctran.Amount > 0 AND knok.CreatorUserId = k.UserId) as BoughtBy,
|
|
k.DistanceFromTarget, k.SuccessRate, published.PublishedKnoks, k.SuccessSequence
|
|
FROM [Users] k
|
|
LEFT JOIN (select s.CreatorUserId as userId, count(1) PublishedKnoks from [dbo].[Signals] s where not KnokStatusId in (1, 2) group by s.CreatorUserId) published on published.userId = k.UserId
|
|
LEFT JOIN (select count(f.UserId) UserFollowers, f.FollowUserId userId from [dbo].[UserFollows] f group by f.FollowUserId) follow on follow.userId = k.UserId
|
|
LEFT JOIN (select count(f.UserId) UserKnoks, knok.CreatorUserId
|
|
from [dbo].[UserKnoks] f
|
|
inner join Signals knok on f.KnokId = knok.KnokId
|
|
group by knok.CreatorUserId) purchases on purchases.CreatorUserId = @KnokserId
|
|
WHERE k.UserId = ISNULL(@KnokserId, k.UserId)
|
|
RETURN 0 |