Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 26.03.2020
Сообщений: 6
MS SQL

Создать таблицу по SQL запросу

26.03.2020, 15:47. Показов 2511. Ответов 13

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Задача: имеем две таблицы с персоналом: 1) основная таблица, с основными данными по персоналу; 2)таблица с данными по персоналу, который находится на больничном(данные: Ф.И.О., Дата начала больничного, Дата окончания больничного); Связь между таблицами по столбцу fio.
Необходимо при выборе даты DateTimePicker и нажатию кнопки присвоить статус сотрудника (изменить значение поля) на тот день, который выбран в DateTimePicker. Попробовал реализовать запрос на получение необходимых сведений, чтобы затем в отсеянных данных присвоить необходимое значение столбцу Статус, но не могу придумать, как это сделать.
Delphi
1
2
3
4
5
6
7
8
9
10
procedure TForm3.Button8Click(Sender: TObject);
var fdate1: string;
var Date1: TDate;
begin
date1 := Form3.DateTimePicker1.Date;
DateTimeToString(fdate1, 'dd/mm/yyyy', Date1);
DataModule2.ADOQuery6.SQL.Clear;
DataModule2.ADOQuery6.SQL.Text:='SELECT Gospital.fio, Gospital.daten, Gospital.datek, Spisok.status FROM Gospital INNER JOIN SpisokLS ON Gospital.fio = Spisok.fio WHERE (((Gospital.daten)='+#39+fdate1+#39' Or (Gospital.daten)<'+#39+fdate1+#39') AND ((Gospital.datek)='+#39+fdate1+#39' Or (Gospital.datek)>'+#39+fdate1+#39'))';
DataModule2.ADOQuery6.ExecSql;
end;
Есть какие мысли ?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.03.2020, 15:47
Ответы с готовыми решениями:

Создать турнирную таблицу в SQL
с SQL почти ничего не знаю, есть такая задача : Нужно создать турнирную таблицу в которой есть поля . На данный момент у меня есть...

Создать таблицу в SQL из DataGrid
Всем привет! У меня есть готовая таблица DataGrid. Мне нужно подключиться к серверу SQL и создать там такую же таблицу. Как это...

Как создать SQL таблицу на Delphi5?
Подскажите как создать SQL таблицу на Delphi5

13
Модератор
 Аватар для D1973
9924 / 6460 / 2457
Регистрация: 21.01.2014
Сообщений: 27,411
Записей в блоге: 3
26.03.2020, 16:13
Цитата Сообщение от Coinblank Посмотреть сообщение
Связь между таблицами по столбцу fio
Просто замечательно... А Вам в жизни не приходилось встречать людей с одинаковыми ФИО? А это не столь уж и редкая ситуация... Связь между таблицами осуществляется по полю, заполненному уникальными значениями!
0
0 / 0 / 0
Регистрация: 26.03.2020
Сообщений: 6
26.03.2020, 16:21  [ТС]
Полностью согласен с Вами) но в данный момент вопрос в решении задачи
0
Модератор
 Аватар для D1973
9924 / 6460 / 2457
Регистрация: 21.01.2014
Сообщений: 27,411
Записей в блоге: 3
26.03.2020, 16:35
Цитата Сообщение от Coinblank Посмотреть сообщение
вопрос в решении задачи
Это ответ! Нельзя что-то сделать в неверно спроектированной БД, чтобы это гарантированно работало.
0
0 / 0 / 0
Регистрация: 26.03.2020
Сообщений: 6
26.03.2020, 16:37  [ТС]
ок, можно отредактировать тему? не fio а условный буквенный идентификатор?
0
5978 / 4553 / 1095
Регистрация: 29.08.2013
Сообщений: 28,180
Записей в блоге: 3
26.03.2020, 16:48
Цитата Сообщение от Coinblank Посмотреть сообщение
буквенный идентификатор?
буквенный?

с теорией БД вы знакомы?
0
0 / 0 / 0
Регистрация: 26.03.2020
Сообщений: 6
26.03.2020, 16:50  [ТС]
Нет, не знаком
0
5978 / 4553 / 1095
Регистрация: 29.08.2013
Сообщений: 28,180
Записей в блоге: 3
26.03.2020, 17:20
цифровой идентификатор короче
проще\быстрее строится индекс

типы данных int\int64 и GUID
0
0 / 0 / 0
Регистрация: 26.03.2020
Сообщений: 6
26.03.2020, 17:24  [ТС]
qwertehok, ок, цифровой идентификатор. По задаче то есть мысли ?
0
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,671
Записей в блоге: 21
26.03.2020, 19:10
ну а что еще нужно знать по задаче?
как правильно пишутся SQL запросы???
если вам "мне только спросить" -вот

SQL
1
2
3
4
SELECT .....
FROM spisokLS s
JOIN gospital g ON g.PERS_ID = s.PERS_ID
WHERE :ADATE BETWEEN s.daten AND s.datek
подставить параметр ADATE и открыть датасет
1
5978 / 4553 / 1095
Регистрация: 29.08.2013
Сообщений: 28,180
Записей в блоге: 3
26.03.2020, 20:08
krapotkin, так не будет работать, параметром может быть только значение
тут нужно условие WHERE динамически сформировать
Delphi
1
2
3
4
s,sql:string
..
if <условие> then s:='table1' else s:='table2';
sql:='select * from t where '+s+ ' between 1 and 2';
1
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,671
Записей в блоге: 21
26.03.2020, 20:22
Firebird и Oracle такое едят совершенно без проблем, про MS SQL не уверен, документация об этом ничего не говорит
0
0 / 0 / 0
Регистрация: 26.03.2020
Сообщений: 6
29.03.2020, 03:37  [ТС]
krapotkin, мне необходимо присвоить значения всем строкам в столбец status описанного выше запроса.
qwertehok, не совсем понял, как это решит проблему
0
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,671
Записей в блоге: 21
29.03.2020, 11:32
Лучший ответ Сообщение было отмечено Coinblank как решение

Решение

логично, что по вашему описанию никто не понял, что конкретно вам надо ?
вы написали - хочу сделать
Цитата Сообщение от Coinblank Посмотреть сообщение
изменить значение поля
, (в переводе на наш язык - UPDATE) но чтоб понять, чокак, сделал SELECT, но он не работает как надо
и два человека написали, как делать SELECT

вы синтаксис UPDATE прочли ?
там те же яйца только в профиль
"хочу присвоить полю Status значение YYY в тех записях, где выполняется условие FFFFFFF"
В целом, ваша задача просто правильно задать условие

Добавлено через 3 минуты
SQL
1
2
3
UPDATE spisok 
SET STATUS = 1 /* ???? */
WHERE PERS_ID IN  (SELECT PERS_ID FROM .......)
select вот тот самый, который вы собирались сделать.
ну и начинается это с того, что у вас должно быть поле PERS_ID
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.03.2020, 11:32
Помогаю со студенческими работами здесь

SQL Oracle. Нужно создать таблицу
Вот написал код, http://f2.s.qip.ru/hT9jRKis.png Я не знаю как создать таблицу чтоб работала. Заранее спасибо. В самой простой...

Как SQL-ем создать DBF таблицу?
Подскажите пожалуйста, можно ли SQL-ем создать DBF таблицу? Заранее признателен Kostian.

Где прописывать код чтобы создать таблицу в sql
Есть созданная база данных. В ней надо создать таблицу. В теории к лабораторной есть код, который создает таблицу с нужными столбцами. Но...

Создать SQL-запрос, добавляющий в таблицу новую запись
1.Создать SQL-запрос, добавляющий в таблицу, содержащую сведения о пассажирском транспорте, новую запись: Гос номер – ВВ148В,...

Создать новую таблицу в Access'e средствами Delphi и SQL
Всем здравствуйте! Итак, сначало описание. Есть форма с полями (Edit'ами) в которые я заношу названия моих столбцов для новой таблицы. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru