У меня есть одна таблица базы данных, в которой хранятся записи недели.SQL self join несколько раз
Id Value WeekId
1 1.0000 1
2 2.0000 1
В течение одной недели может быть до трех записей.
Так что я решил, используя автообъединение бы решить эту
SELECT w1.Value, w2.Value, w3.Value
FROM [List].[dbo].[testWeekEntries] as w1
LEFT OUTER JOIN [List].[dbo].[testWeekEntries] as w2 ON w1.WeekId = w2.weekId
LEFT OUTER JOIN [List].[dbo].[testWeekEntries] as w3 ON w2.WeekId = w3.WeekId
WHERE w1.Id < w2.Id AND w2.Id < w3.Id
Проблема: Это Worls штраф с максимальным количеством записей, однако он не тянет обратно строку с одним или двумя входами.
Есть ли другой тип соединения, который я могу использовать, чтобы вытащить строку только с одной или двумя записями или другим способом приблизиться к этому?
Я попробовал это, однако, теперь он возвращает несколько строк, где он должен только вернуть одну строку в неделю Id – user900566
@ user900566 - ты прав , виноват. Какие СУБД вы используете? –
Ms SQL server 2008 – user900566