У меня есть 3 таблицы в моей базе данных. Таблица A содержит основной идентификатор и название проекта. Таблица B является основной таблицей подробностей проекта, и мы записываем новую запись для каждого обновления, сделанного в нем. Таблица C предназначена для подразделений, которые могут быть добавлены в проект, и для каждой записи их может быть несколько.
Таблица A
TAID | Name
-------------
1 | Test 1
2 | Test 2
3 | Test 3
Таблица B
TANo | TAID | Description | Completed
------------------------------------------------
1 | 1 | Some text | True
2 | 1 | More text | True
3 | 1 | Extra text | False
4 | 2 | Other text | True
5 | 2 | Test text | True
6 | 3 | Text | True
Таблица C
DivID | TANo | TAID | DivisionID
------------------------------------------------
1 | 1 | 1 | 1
2 | 1 | 1 | 2
3 | 2 | 1 | 2
4 | 3 | 1 | 2
5 | 6 | 3 | 4
После чего я хочу написать запрос, который позволит мне извлечь последнюю запись идентификатора, но с разбивкой по подразделениям. Я получил свой запрос, чтобы просто получить последнюю строку из таблицы B в таблицу A, но я застрял в том, как я могу запросить свои результаты, основываясь на том, что я хочу получить все результаты для Дивизиона 1? Или несколько делений?
Select
ta.Name
,tb.TANo
,tb.TAID
,tb.Description
,tb.Completed
From
TableA ta
CROSS APPLY
(
Select
Top(1)
b.TANo
,b.TAID
,b.Description
,b.Completed
From
TableB as b
Where
b.TAID = ta.TAID
Order by b.TANo desc
) as tb
Так что в качестве примера у меня может быть эта запись, которая имеет несколько обновлений:
Таблица A
TAID | Name
-------------
2 | Test 2
Таблица B
TANo | TAID | Description | Completed
------------------------------------------------
4 | 2 | Other text | False
5 | 2 | Test text | True
Таблица C
DivID | TANo | TAID | DivisionID
------------------------------------------------
3 | 4 | 2 | 2
4 | 5 | 2 | 2
5 | 5 | 2 | 4
Затем с добавлением чего-либо в мой запрос, если я искал на записях, которые были в подразделениях 2 и 4, я мог отозвать результаты, где он просто показывает последнюю единственную запись проекта
Результат
TAID | TANo | Description | Completed
------------------------------------------------
2 | 5 | Test text | True