У меня сложный запрос, который я просто не могу создать. Я собираюсь сделать это с помощью JOIN, но не знаю с чего начать. Я просто попытаюсь объяснить мою проблему как можно яснее.Сложный запрос с SQLite
Я создаю программное обеспечение, которое занимается компенсациями. Каждая компенсация может иметь несколько ссылок (например, в цепочке). Каждая ссылка в основном является клиентом. Таким образом, я просто скажу вам структуру таблицы:
Заказчика
CustomerID | Name
Компенсация
CompensationID | CustomerID | Date
Ссылка
LinkID | CompensationID | CustomerID | Sequential
Теперь, Последовательные поле увеличивается с каждой ссылкой добавлен , Позвольте мне продемонстрировать, заполнив таблицы с некоторыми данными:
CustomerID | Name
-----------+-----
0 | Foo
1 | Bar
2 | Baz
CompensationID | CustomerID | Date
---------------+------------+------
0 | 0 | 2-2-2010
1 | 1 | 2-3-2010
LinkID | CompensationID | CustomerID | Sequential
-------+----------------+------------+-----------
0 0 0 0
1 0 2 1
2 0 1 2
Поэтому независимо от того, что LinkID/CompensationID/CustomerID Последовательный всегда идет от 0 до N в таблице ссылок (в зависимости от того, сколько ссылок компенсации есть) ,
Теперь вот проблема: я хочу, чтобы перечислить все компенсации, чьи встречаются Линка следующие требования:
Поиск в Ссылки CustomerID = A Последовательная = 0 (первое звено) и Sequential = LAST (в данном случае 2) Список компенсации
Вот что я получил до сих пор:
SELECT * FROM Compensation JOIN Link ON Compensation.ID = Link.CompensationID
WHERE Link.CustomerID=A AND Link.Sequential = 0 AND Link.Sequential=LAST
Это более или менее псевдо SQL, так как я знаю, что могу быть Link.Sequential 0 и другое значение в то же время, но я не знаю, как это сделать.
Любая помощь будет оценена по достоинству.
спасибо.
P.S. Извините за большую стену текста.
Попробуйте с `Link.Sequential = 0 ИЛИ Link.Sequential = LAST` (И будет только оценить, когда 0 это LAST - никогда, если в таблице ссылок больше одной строки). – 2010-12-07 23:09:33