У меня есть таблица, содержащая столбцы VisitorName
, vitising_date
, location Id
. Мне нужно, чтобы отобразить записи для текущего местоположения месяца посетитель мудрых вместе с последним месяцем посетителемЗапрос SQL Server: преобразование строк в столбцы
Таблица схема:
CREATE TABLE visitors
(
[id] [bigint] IDENTITY(1,1) NOT NULL,
[name] varchar(50),
[location_id] [bigint],
[visited_date] [datetime]
);
name location_id visited_date
David 1 2016-01-04
John 1 2016-01-02
Andrea 1 2016-01-05
Ely 2 2016-01-04
Andrea 1 2016-02-02
John 1 2016-02-02
Peter 2 2016-02-02
Запроса на текущий месяц запись:
select *
from visitors
where
DATEPART(month, visited_date) = DATEPART(MONTH, GETDATE())
and DATEPART(year, visited_date) = DATEPART(year, getdate())
Но мне нужны данные для отображения последнего м аяся ца запись по текущему месяцу что-то вроде этого
Locationid Name Date LastMonthVisitor LastMonthVisitingDate
1 Andrea 2016-02-02 Andrea 2016-01-05
1 John 2016-02-02 David 2016-01-04
1 'NA' 'NA' John 2016-01-02
2 Peter 2016-02-02 Ely 2016-01-04
- Записи показывает список посетителей текущего месяца группы по ID местоположения (идентификатор местоположения является внешним ключом)
- Теперь мне нужен список в прошлом месяце группа посетителей по ID местоположения
Эти результаты являются рядом друг с другом по дате. Возможно, они могут измениться, если в прошлом месяце запись посетителя была равна 5 для location_id 1, а текущий посетитель месяца был бы 2 Итак, наконец, он отобразит 5 записей. Они не связаны между именем посетителя текущего месяца, именем посетителя LastMonth.
Я могу сделать часть на стороне сервера C# и отобразить список CurrentMonthVisitors в группе LastMonthVisitor по идентификатору местоположения. Но я пытаюсь в SQL.
Почему Давид не появляется в вашем примере результирующего набора? Какое отношение у Иоанна и Давида есть во втором альбоме, и что случилось с Эли? –
@TimBiegeleisen: Дэвид тоже дер, но в колонке посетителя в прошлом месяце. Запись находится в текущем месяце. –
Почему бы вам не сделать два выбора и объединить? http://stackoverflow.com/questions/27238170/how-to-combine-two-querys-results-into-one-row –