Я использую MS SQL Server 2012 на платформе Windows7 и Qt5 для разработки приложения, которое использует базу данных. Я хорошо разбираюсь в Qt, но у меня нет навыков SQL.
В настоящее время у меня есть таблица с именем Devices
который выглядит следующим образом:SQL-запрос для заполнения таблицы с использованием уникальных/отдельных данных из другой таблицы и переменной?
DeviceSerial DeviceIPAddr DeviceSwVersion
===========================================
1000 192.168.1.1 8.00
1043 192.168.1.2 8.00
1045 192.168.1.2 8.01
1049 192.168.1.3 8.00
1055 192.168.1.4 8.00
1058 192.168.1.6 8.00
1060 192.168.1.5 8.00
1061 192.168.1.8 8.01
1066 192.168.1.3 8.00
1070 192.168.1.10 8.00
1071 192.168.1.12 8.00
...
Существует также другая таблица с именем CommandQueue
, (то есть пустой или она должна быть перед этой операцией?), И что она должна быть заполнена данными , на основе первого поля таблицы DeviceIPAddr
и значение параметра (целое число) из моего приложения, как показано ниже:
TargetIP CommandID
========================
192.168.1.1 30
192.168.1.2 30
192.168.1.3 30
192.168.1.4 30
192.168.1.5 30
192.168.1.6 30
192.168.1.8 30
192.168.1.10 30
192.168.1.12 30
...
значение commandID
одно и то же в один момент времени для всех строк CommandQueue
таблицы , Для примера/образца я выбрал 30.
Как создать SQL-запрос для заполнения таблицы CommandQueue
?
Спасибо за подсказку 'TRUNCATE'! Один вопрос, если вы позволите мне: Что делать, если я устанавливаю вставку только для устройства, имеющего версию версии 8.00 (см. Мой пример в вопросе выше). Как следует модифицировать/адаптировать запрос? –
Хммм ... идея в том, что 'CommandID' должен быть обновлен до последнего значения, предоставленного приложением Qt, старые значения должны быть заменены ... если вы знаете, что я имею в виду ... –
Обновлено - - Кстати, я, очевидно, ничего не знаю о вашем приложении, но если вам нужно вывести уникальные значения DeviceIPAddr/DeviceSwVersion из «Устройства», вы можете попробовать это, просто добавив индекс. –