powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Сложный запрос
14 сообщений из 14, страница 1 из 1
Сложный запрос
    #39677289
_Тимур_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Делаю запрос в IBQuery по значению одной записи из другой таблицы

Код: pascal
1.
2.
3.
4.
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('select * from doc_reception where number = :a');
IBQuery1.ParamByName('a').Value:=DBGrid2.Fields[1].AsFloat;
IBQuery1.Open;


Как сделать по нескольким записям, если заранее неизвестно их количество, например по тем где стоят галочки (10,12,19)
Fields[0]Fields[1] +10+1214+19
...
Рейтинг: 0 / 0
Сложный запрос
    #39677291
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Тимур_Как сделать по нескольким записям, если заранее неизвестно их количество, например по тем где стоят галочки (10,12,19)
Так по нескольким или по тем, где стоят галочки?.. Это разные задачи. И лучше спросить в разделе про IB, ИМХО, т.к. задача про SQL.
...
Рейтинг: 0 / 0
Сложный запрос
    #39677292
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Тимур_Как сделать по нескольким записям, если заранее неизвестно их количество, например по тем
где стоят галочки (10,12,19)

В цикле.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Сложный запрос
    #39677293
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovВ цикле.
Я так понял вопрос был - одним запросом.
...
Рейтинг: 0 / 0
Сложный запрос
    #39677295
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvpЯ так понял вопрос был - одним запросом.

Ну да, один запрос посылать с разными значениями параметра в цикле. Это что, слишком
сложная идея?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Сложный запрос
    #39677296
чччД__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Тимур_,
Код: sql
1.
...where number in (10, 12, 19)



https://www.w3schools.com/sql/sql_in.asp
...
Рейтинг: 0 / 0
Сложный запрос
    #39677297
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovalekcvpЯ так понял вопрос был - одним запросом.

Ну да, один запрос посылать с разными значениями параметра в цикле. Это что, слишком
сложная идея?..

Нет, как потом всё в один dbgrid вывести, например?
...
Рейтинг: 0 / 0
Сложный запрос
    #39677298
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvpНет, как потом всё в один dbgrid вывести, например?

Любым удобным способом. Лично я использую TStringGrid: он гораздо шустрее скроллится.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Сложный запрос
    #39677299
_Тимур_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если галки не меняются можно сделать что-то вроде
Код: pascal
1.
IBQuery1.SQL.Add('select * from doc_reception where number = :a OR number = :b');


и использовать цикл для перехода по записям, но оператор в процессе работы ставит галочки и соответственно условия запроса должны меняться
...
Рейтинг: 0 / 0
Сложный запрос
    #39677301
_Тимур_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, что указали куда копать, раскопки привели к следующему:
Код: pascal
1.
2.
3.
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('select * from doc_reception where number in(select field1 from table2 where field0=1)');
IBQuery1.Open;


...работает
...
Рейтинг: 0 / 0
Сложный запрос
    #39677307
чччД__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Тимур_,
используй join, что ли.
...
Рейтинг: 0 / 0
Сложный запрос
    #39677334
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Тимур_Спасибо, что указали куда копать, раскопки привели к следующему:
Код: pascal
1.
IBQuery1.SQL.Add('select * from doc_reception where number in(select field1 from table2 where field0=1)');

...работает
Я же говорил - вопрос не про дельфи.
Лучше, как выше написали, использовать что-то вроде (писал навскидку):
Код: sql
1.
select d.* from doc_reception d, table2 t where d.number = t.field1 and t.field0 = 1
...
Рейтинг: 0 / 0
Сложный запрос
    #39677460
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД___Тимур_,
Код: sql
1.
...where number in (10, 12, 19)




https://www.w3schools.com/sql/sql_in.asp
Щас научишь неофита плохому.
...
Рейтинг: 0 / 0
Сложный запрос
    #39677515
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Тимур_Делаю запрос в IBQuery по значению одной записи из другой таблицы

Код: pascal
1.
2.
3.
4.
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('select * from doc_reception where number = :a');
IBQuery1.ParamByName('a').Value:=DBGrid2.Fields[1].AsFloat;
IBQuery1.Open;




А меня что-то AsFloat смущает.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Сложный запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]