在Sql中需要很多对很多查询的帮助

时间:2012-11-13 06:55:31

标签: sql sql-server sql-server-2008 tsql sqlite

我有两个表CouponTags他们有多对多关系现在我想创建一些sql视图满足以下情况

1-需要使用标签计算每个标签中有多少张优惠券(完成)

2-需要获得按热门标签排序的标签列表(热门标签是大多数优惠券的标签)

3-需要计算每个标签在过去7天内创建的所有优惠券

我为第一个条件编写的sql视图是

SQLVIEW

Create VIEW [dbo].[TagsWithCount] AS

  SELECT Tag.Id as Id , Tag.Name as TagName ,Tag.description as Description,
   COUNT(*) AS CouponCount
   FROM Tags AS Tag
   inner JOIN couponsTotags c ON c.Tagid = Tag.id  
    GROUP BY Tag.Name , Tag.Id ,Tag.description
    GO

它给了我以下结果

enter image description here

我怎么能得到,其他任何人都可以帮助我,告诉我你是否需要任何其他细节

提前致谢

1 个答案:

答案 0 :(得分:1)

    Create VIEW [dbo].[TagsWithCount] AS

    select * from  (SELECT Tag.Id as Id , Tag.Name as TagName ,Tag.description as Description,
       case when DATEDIFF(day, CreateDate, systemdate)<=7 then 'Its sevendays old'
else 'its more than 7 days old' end as SevendaysOldStatus,COUNT(*) AS CouponCount    
       FROM Tags AS Tag
       inner JOIN couponsTotags c ON c.Tagid = Tag.id  
        GROUP BY Tag.Name , Tag.Id ,Tag.description,CreateDate) temp
    order by CouponCount desc
        GO

验证系统日期未在任何编辑器中尝试过但希望能满足您的要求