Я пытаюсь создать запрос, чтобы показать 24 самых популярных страницы, присоединившись к 3 таблицам.
Но у меня проблемы с тем, чтобы заставить его работать.Либо у него есть проблема с использованием UNION
, JOIN
или частью написанной функции / сценария, в общем.
Таблицы:
+---------------+
| dbo_Good_URLs |
+---------------+
| Url |
| HTTPAlias |
| PortalID |
| page_title |
+---------------+
+-----------------+
| dbo_vw_GoodURLs |
+-----------------+
| URL |
| PortalID |
| HTTPAlias |
| Title |
+-----------------+
+-----------------------+
| dbo_analytics_history |
+-----------------------+
| URL |
| PortalId |
| HTTPAlias |
| Page_Title |
| Report_Month |
| Report_Year |
| Pageviews |
| Unique_Pageviews |
| Entrances |
| Total_Time_on_Page |
| Bounces |
| Exits |
| Avg_Time_on_Page |
| Bounce_Rate |
| Exit_Rate |
+-----------------------+
Я пытался использовать IIF(Is Null(**)
И я просмотрел сам сценарий, чтобы понять, почему UNION
и JOIN
не работают, и я могу 'Я, кажется, не понимаю.
Я играл с этим всю неделю, и он просто не приходит ко мне.
SELECT TOP 24 dbo_Good_URLs.Url, Nz(dbo_analytics_history.Pageviews, 0) AS Total_Pageviews,
Nz(dbo_analytics_history.Pageviews, 0) AS Month1
FROM (SELECT Url FROM dbo_Good_URLs WHERE HTTPAlias IN ('x.org', 'ab.x.org'))
UNION
SELECT Url FROM dbo_vw_GoodURLs WHERE dbo_Good_URLs.HTTPAlias IN ('x.org', 'ab.x.org')
LEFT OUTER JOIN dbo_analytics_history
ON dbo_Good_URLs.Url = dbo_analytics_history.URL AND dbo_analytics_history.HTTPAlias IN ('x.org', 'ab.x.org') AND dbo_analytics_history.Report_Month = 10
GROUP BY dbo_Good_URLs.Url, dbo_analytics_history.Pageviews
ORDER BY Nz(dbo_analytics_history.Pageviews, 0) DESC;
Результат, который я ищу, - этопоказать первые 24 страницы, просмотренные за октябрь месяц (т.е. месяц 10)