0

列のあるテーブルUserID, SiteID, SiteViewsと別のテーブルがありますUserID, First, Last

そして、データを次のように表示する必要がありますFirst + Last, Site1Views, Site2Views

サイト ID は 2 つしかなく、ユーザーごとの SiteViews の合計が必要です。

現在私は持っています:

select s.UserFirstName + ' ' + s.UserLastName as 'Name', 
j1.SiteViews as 'Site1Name',
j2.SiteViews as 'Site2Name' 
from (Users s INNER JOIN Usage j on s.UserID = j.UserID)

これを行う方法がわかりません。どんな助けでも大歓迎です。

4

2 に答える 2

1

これにはPIVOTを使用したいと思うかもしれませんか?テストはできませんが、これで正しい方向に進むはずですか?

select s.UserFirstName + ' ' + s.UserLastName as Name, 
       [Site1Name],
       [Site2Name]
FROM
       (SELECT s.UserFirstName + ' ' + s.UserLastName,
               SiteName,
               SiteVisits
        from Users s 
        INNER JOIN Usage j1 
          on s.UserID = j1.UserID
       )
PIVOT (SUM(SiteVisits) FOR SiteName IN ([Site1Name],[Site2Name])) as p
于 2012-11-05T23:23:03.263 に答える
1

how I understood it

select s.UserFirstName + ' ' + s.UserLastName as Name 
,(Select COUNT(*) from SiteViews s1 where s.UserID = s1.UserID /*other condition*/) as SiteView1
,(Select COUNT(*) from SiteViews s2 where s.UserID = s2.UserID /*other condition*/) as SiteView2 
from Users s 
于 2012-11-05T23:27:35.837 に答える