Это случай, когда казалось, что простое упражнение оказалось ничем иным, как. Я даже не смог получить свой синтаксис.SQL Query для временных интервалов. Синтаксические ошибки.
Readings
таблица содержит координаты и значения времени для нескольких пользователей. Все, что я хочу в это время, организовать его как последовательные временные интервалы для каждого пользователя.
данных:
CREATE TABLE [Readings] (
user_id varchar(10),
reading_time int,
x decimal(10,2),
y decimal(10,2));
INSERT INTO Readings VALUES
('u1', 60, 345, 400),
('u1', 100, 560,300),
('u2', 35, 1024, 250),
('u1', 90, 450, 450),
('u3', 150, 600, 100),
('u3', 100, 500, 125);
Мой ошибочный код:
SELECT r.user_id, r.reading_time start_time, rm.reading_time end_time,
(CONVERT(varchar, r.x)+' ; '+CONVERT(varchar, r.y)) start_point,
(CONVERT(varchar, rm.x)+' ; '+CONVERT(varchar, rm.y)) end_point
FROM Readings r
JOIN (SELECT TOP 1 r2.user_id, r2.reading_time, r2.x, r2.y
FROM Readings r2
WHERE r2.user_id=r.user_id and
r2.reading_time < r.reading_time
ORDER BY r2.reading time desc) rm
ON r.user_id=rm.user_id
ORDER BY 1,2 desc;
Можете ли вы указать на мою ошибку (ы) синтаксис?
SQL является язык. Какие СУБД вы используете? (Я подозреваю, что SQL-Server из «TOP», но я могу ошибаться.) Вы также должны добавить версию, которую используете. –
@ypercube выглядит как sql-сервер, основанный на квадратных скобках и синтаксисе 'TOP' – Taryn
. Какое сообщение об ошибке вы получаете? – Melanie