MS-脚本查询无法获得工作或运行

问题描述 投票:-2回答:1

我想创建一个查询,以显示通过连接3台顶部24观看次数最多的网页。

但是,我无法得到它的工作。无论是它与使用UNIONJOIN或编写的函数/脚本的一部分,一般的问题。

该表是:

+---------------+
| 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(**)而且我通过看向脚本本身明白为什么UNIONJOIN似乎不工作,我似乎无法弄清楚。

我整个星期都在玩弄这一点,它只是没有向我涌来。

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个月)。

sql ms-access
1个回答
0
投票

我会大胆地猜测,你实际上是在寻找类似如下:

select top 24 q.url, nz(a.pageviews, 0) as Total_Pageviews, nz(a.pageviews, 0) as Month1
from 
    (
        select dbo_good_urls.url from dbo_good_urls 
        where dbo_good_urls.httpalias in ('x.org', 'ab.x.org')
        union 
        select dbo_vw_goodurls.url from dbo_vw_goodurls 
        where dbo_vw_goodurls.httpalias in ('semcog.org', 'loggedin.semcog.org')
    ) q
    left join dbo_analytics_history a on q.url = a.url
)
where
    a.report_month is null or a.report_month = 10
order by 
    nz(a.pageviews, 0) desc;

在此,目标URL由两个被联合子查询中选择,这种联合的结果却让加入到你的dbo_analytics_history表上url场。

© www.soinside.com 2019 - 2024. All rights reserved.