Sql 需要从更复杂的查询中进行计数
我通常在子查询中使用COUNT来获取所需的数字,但在这种情况下,我需要一些帮助,因为查询包含太多的参数Sql 需要从更复杂的查询中进行计数,sql,sql-server,sql-server-2008,tsql,count,Sql,Sql Server,Sql Server 2008,Tsql,Count,我通常在子查询中使用COUNT来获取所需的数字,但在这种情况下,我需要一些帮助,因为查询包含太多的参数 SELECT a.[QueueID] ,a.[CouponID] ,a.[ListingID] ,a.[User_ID] ,b.[CouponID] ,b.[ListingID] ,b.[CouponActive] ,b.[CouponExpire] ,b.[IsDeleted] ,c.[ListingID] ,c.[TypeID] ,c.[Le
SELECT a.[QueueID]
,a.[CouponID]
,a.[ListingID]
,a.[User_ID]
,b.[CouponID]
,b.[ListingID]
,b.[CouponActive]
,b.[CouponExpire]
,b.[IsDeleted]
,c.[ListingID]
,c.[TypeID]
,c.[LevelID]
,@passedUserID as User_ID
FROM CouponQueue a
JOIN Coupon b
on a.CouponID = b.CouponID
JOIN Listing c
on b.ListingID = c.ListingID
WHERE (a.[User_ID] = @passedUserID)
AND (b.[CouponActive] = 1)
AND (b.[IsDeleted] = 0)
AND (b.[CouponExpire] > DATEADD(dd, -1, GETDATE()) OR b.[CouponExpire] IS NULL)
假设这个查询返回7行的结果。我只需要这个号码就可以看了。因此,我想将最终结果限制为一行,以便最终得到:
[TotalCount] <-- Field name
[7] <-- Result
[TotalCount]这对你有用吗
select count(*) as TotalCOunt from (
SELECT a.[QueueID] /*
,a.[CouponID]
,a.[ListingID]
,a.[User_ID]
,b.[CouponID]
,b.[ListingID]
,b.[CouponActive]
,b.[CouponExpire]
,b.[IsDeleted]
,c.[ListingID]
,c.[TypeID]
,c.[LevelID]
,@passedUserID as User_ID */
FROM CouponQueue a
JOIN Coupon b
on a.CouponID = b.CouponID
JOIN Listing c
on b.ListingID = c.ListingID
WHERE (a.[User_ID] = @passedUserID)
AND (b.[CouponActive] = 1)
AND (b.[IsDeleted] = 0)
AND (b.[CouponExpire] > DATEADD(dd, -1, GETDATE()) OR b.[CouponExpire] IS NULL)
) t
您可以删除计数的列。它们实际上不是必需的。应该能够添加计数(*):
祝您好运。您可以将下面的示例放在SQL开发人员身上运行以进行计数:
SELECT count(*) as totalCount (*-open a parentheses - your original query -close the parentheses*)
嗨,戈登!!!上次你救了我!太好笑了。很高兴再次见到你。我从您的建议中得到以下错误:“t”多次指定了列“CouponID”。您可以删除计数的所有列。其实没必要。再次谢谢你,戈登!我真的很感谢你的帮助。
SELECT count(*) as totalCount (*-open a parentheses - your original query -close the parentheses*)