如果分组列包含值并且取决于结果创建值为真或假的列,如何检查 TSQL

How to check in TSQL if grouped column contains value and depends of result create colum with value true or false

我有 3 个 table。检查屏幕截图。

我想要 3 列的视图 是,标题,IsVotedByUser

在 IsVotedByUser 列中,我需要使用任何 "aggregate" 函数来检查 table UserInquiry 中是否包含已声明的变量 @UserId。 取决于结果我想在此列中使用 True 或 False。

像这样:

我也试过:

谢谢

您需要使用Conditional Aggregate

SELECT i.id,
       i.title,
       Count(CASE WHEN ui.userid = @userid THEN 1 END)
FROM   Inquiry I
       LEFT JOIN UserInquiry ui
              ON ui.userid = i.id
GROUP  BY i.id,i.title 
SELECT i.Id, i.Title,
    CASE WHEN SUM(CASE WHEN ui.UserId = @UserId then 1 ELSE 0 END) > 0
    THEN 'True' ELSE 'False' END as IsVotedByUser
FROM [dbo].[Inquery] as i
LEFT JOIN [dbo].[UserInquery] as ui
ON i.Id = ui.InquiryId
GROUP BY i.Id, i.Title