Я использую базу данных MS SQL, и у меня есть 3 таблицы: «base_info», «messages», «config»
bases:
ID Name NameNum
====================================
1 Home 101
2 Castle 102
3 Car 103
messages:
ID Signal RecBy HQ
============================
111 120 Home 1
111 110 Castle 1
111 125 Car 1
222 120 Home 2
222 125 Castle 2
222 130 Car 2
333 100 Home 1
333 110 Car 2
config:
ID SignalRec SignalOut RecBy HQ
====================================
111 60 45 101 1
111 40 60 102 1
222 50 60 102 2
222 30 90 101 2
333 80 10 103 1
Хорошо, теперь у меня есть подзапрос, в котором я выбираю 'SignalRec' и 'SignalOut' из таблицы конфигурации и сопоставляю его с таблицей сообщений по ID и дате (не указаны выше), проблема в том, что мне это нужно чтобы соответствовать, где messages.RecBy = config.RecBy, но config.RecBy является строкой, но ее эквивалентное имя находится в таблице баз. Поэтому мне почти нужно сделать подзапрос внутри подзапроса или какой-либо тип соединения и сравнить возвращаемое значение.
Вот что у меня есть:
(SELECT TOP 1 config.SignalRec from config WHERE config.ID = messages.ID AND ||I need th other comparison here||...Order By...) As cfgSignalRec,
(SELECT TOP 1 config.SignalOut from config WHERE config.ID = messages.ID AND ||I need th other comparison here||...Order By...) As cfgSignalOut
Я пытался сделать это как можно более понятным, но если вам нужна дополнительная информация, дайте мне знать.