Скопировать данные из одной таблицы в другую И установить фиксированные значения? - PullRequest
1 голос
/ 31 января 2011

Я использую следующую инструкцию 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

В настоящее время это прекрасно работает для помещения данных url и pageViews в TableB, как показано ниже (Пожалуйста, игнорируйтеточки - это было для форматирования всего в строке, чтобы выглядеть как таблица!).


|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

Я был бы очень признателен за любую помощь в этом.

Большое спасибо:)

Ответы [ 2 ]

4 голосов
/ 31 января 2011

Простой, как выбор постоянного значения для каждой строки:

INSERT INTO TableB (url, pageViews, ranking)
SELECT DISTINCT TOP(5) url AS url, SUM(HitCount) As pageViews, 'Top5' AS ranking
1 голос
/ 31 января 2011

Но столбец рейтинга равен 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
...