2012-11-13 92 views
1

我有兩個表CouponTags他們有很多很多的關係,現在我想創造一些SQL視圖滿足下列情況在許多需要幫助的許多查詢在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

'ORDER BY工作CouponCount DESC'爲(2) – Cynede

+0

對於第二個你可以訂購通過CouponCount Desc查看,但第三個查看日期時間字段的格式是否在Coupon的表格中? –

+0

@Smartboy所有情況都應該適合一個查詢嗎? –

回答

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 

驗證系統正日期在任何編輯器沒有嘗試過,但希望會爲您的要求

+0

所有不錯,但不是'CouponCount desc'的順序,我們應該使用'ORDER BY CouponCount DESC'作爲@Ash表示,感謝所有 – Smartboy

+0

對不起,我剛剛看到您的編輯,任何感謝 – Smartboy

+0

抱歉@Rahul,它在'SevendaysOld'中給出了錯誤的計數。我的意思是如果一個標籤有3個優惠券,它會顯示3它的SevendaysOld應該是一個位域來顯示這個標籤是否7天或沒有,希望你能得到我的觀點 – Smartboy