Суда ежедневно прибывают в порт с пассажирами «Р». Каждый корабль имеет название «N» и прибывает не чаще одного раза в день. У меня есть таблица этих данных таким образом:Присоединиться к той же таблице, что и даты встреч
Date N P
2013-11-27 A 12
2013-11-27 G 16
2013-11-27 B 56
2013-11-28 A 10
2013-11-29 B 19
2013-11-29 A 19
2013-11-30 G 18
2013-11-30 B 13
2013-11-30 A 11
Я хочу, чтобы сравнить одного корабля «А» количество пассажирского другого «B» для заданного промежутка времени, но только тогда, когда они прибывают в тот же день. Таким образом, результат равен
Date PA PB
2013-11-27 12 56
2013-11-29 19 19
2013-11-30 11 13
Обратите внимание, что нет «B» на 28-м, поэтому не сообщалось (и наоборот).
Какое-то внешнее соединение на одном столе?
SELECT A.Date, A.P as PA, B.P AS PB
FROM Arrivals A OUTER JOIN Arrivals B ON A.Date = B.Date
WHERE ... ???
Date >= @start AND Date <= @end AND
A.N = 'A' AND B.N = 'B'
Вышеуказанный запрос - это начало, которое я имею в виду, но я не знаю, как его завершить. Кто-нибудь знает запрос? SQL Server 2008 Спасибо за любую помощь.
Пожалуйста, очистить свой вопрос здесь, на самом деле не уверен, что вы спрашиваете? Вы запрашиваете запрос, который даст результат, который вы указали в таблице? – Shawn
Какая ошибка вы видите? Имеет ли значение '@ start' и' @ end' допустимое значение даты? Что вы ожидаете вместо '... ???'? –