2011-01-31 126 views
1

我正在使用以下SQL語句將TableA中的數據複製到TableB。將數據從一個表複製到另一個表並設置固定值?

INSERT INTO TableB (url, pageViews) 
SELECT DISTINCT TOP(5) url AS url, SUM(HitCount) As pageViews 
FROM TableA 
WHERE (url LIKE '%www%site') AND (YEAR(dtDate) = 2011) AND (MONTH(dtDate) = 1) 
GROUP BY url 
ORDER BY pageViews DESC 

目前,這一工作在把網址和瀏覽量數據表B到下面大(請忽略的點 - 這是用於格式化樣樣在行看起來像一個表)。


|URL   | pageViews  | ranking 

|www.site.com | 25220   | NULL 

|www.site.com/a | 25230   | NULL 

|www.site.com/b | 25433   | NULL 

但排名列是NULL。對於每一行,我從表A把劃過,我想設置的排名列的值(僅在表B存在)是「TOP5」,如下:


|URL   | pageViews  | ranking 

|www.site.com | 25220   | Top5 

|www.site.com/a | 25230   | Top5 

|www.site.com/b | 25433   | Top5 

我非常感謝這方面的幫助。

非常感謝:)

+1

請用您正在使用的RDBMS標記您的問題,因爲這不是標準的SQL。 – 2011-01-31 13:08:23

回答

3

簡單作爲每一行選擇恆定值:

INSERT INTO TableB (url, pageViews, ranking) 
SELECT DISTINCT TOP(5) url AS url, SUM(HitCount) As pageViews, 'Top5' AS ranking 
+0

非常感謝馬蒂爲您的快速反應!它的作品很棒:) – user540298 2011-01-31 14:11:14

1

但排名列是NULL。對於 我從 表A將在每個行,我想設置的 值排名列(僅在表B存在 )

你是不是從選擇ranking列表B:

INSERT INTO TableB (url, pageViews, ranking) 
SELECT DISTINCT TOP(5) url AS url, SUM(HitCount) As pageViews, ranking 
FROM TableA 
WHERE (url LIKE '%www%site') AND (YEAR(dtDate) = 2011) AND (MONTH(dtDate) = 1) 
GROUP BY url 
ORDER BY pageViews DESC 
相關問題