Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Сложный запрос / 14 сообщений из 14, страница 1 из 1
21.07.2018, 23:15
    #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
22.07.2018, 00:10
    #39677291
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложный запрос
_Тимур_Как сделать по нескольким записям, если заранее неизвестно их количество, например по тем где стоят галочки (10,12,19)
Так по нескольким или по тем, где стоят галочки?.. Это разные задачи. И лучше спросить в разделе про IB, ИМХО, т.к. задача про SQL.
...
Рейтинг: 0 / 0
22.07.2018, 00:19
    #39677292
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложный запрос
_Тимур_Как сделать по нескольким записям, если заранее неизвестно их количество, например по тем
где стоят галочки (10,12,19)

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

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



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

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

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

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


и использовать цикл для перехода по записям, но оператор в процессе работы ставит галочки и соответственно условия запроса должны меняться
...
Рейтинг: 0 / 0
22.07.2018, 01:38
    #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
22.07.2018, 06:18
    #39677307
чччД__
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложный запрос
_Тимур_,
используй join, что ли.
...
Рейтинг: 0 / 0
22.07.2018, 12:25
    #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
23.07.2018, 00:23
    #39677460
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложный запрос
чччД___Тимур_,
Код: sql
1.
...where number in (10, 12, 19)




https://www.w3schools.com/sql/sql_in.asp
Щас научишь неофита плохому.
...
Рейтинг: 0 / 0
23.07.2018, 09:21
    #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
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Сложный запрос / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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