Я не знаю, как это сформулировать, потому что сейчас я немного запутался, поэтому потерпите меня, пока я пытаюсь объяснить, у меня есть таблица со следующими полями:
OrderLineID, OrderID, OrderLine, and a few other unimportant ones.
OrderLineID является первичным ключом и всегда уникальным (что не является проблемой), OrderID является внешним ключом, который не является уникальным (также не является проблемой), а OrderLine является значением, которое не является уникальным в таблице. , но должен быть уникальным для любых идентификаторов OrderID, которые одинаковы ... так что, если это не имеет смысла, возможно, изображение ...
OrderLineID, OrderID, OrderLine
1 1 1
2 1 2
3 1 3
4 2 1
5 2 2
Для всех идентификаторов OrderID существует уникальный OrderLine. Я пытаюсь создать оператор вставки, который получает максимальное значение OrderLine для определенного OrderId, чтобы я мог увеличить его, но он работает не так хорошо, и я мог бы воспользоваться небольшой помощью. То, что у меня есть сейчас, ниже, я строю оператор SQL в программе и заменяю OrderID # на фактическое значение. Я почти уверен, что проблема заключается во вложенном операторе select и увеличении результата, но я не могу найти примеров, которые бы это делали, поскольку мои навыки в Google, по-видимому, слабы ....
INSERT INTO tblOrderLine (OrderID, OrderLine) VALUES
(<OrderID #>, (SELECT MAX(OrderLine)
FROM tblOrderLine WHERE orderID = <same OrderID #>)+1)
Любая помощь будет хорошей.