Re: Нужен совет. Как правильнее сделать?

К сожалению сложно понять как лучше сделать без проекта, приложите пожалуйста проект и опишите на какой форме должно все это происходить.

Dmitry.

Re: Нужен совет. Как правильнее сделать?

Дмитрий.
Проект оправил по электронной почте.

Re: Нужен совет. Как правильнее сделать?

Дмитрий!!!
Огромное спасибо расчеты работают.
Правда не заполняются значения sch.id_res. Проставляются значения NULL.
Отправил ответ в электронной переписке. Посмотрите пожалуйста, как добавить заполнение в таблицу sch.id_res.
Тема письма: "Re[2]: Fwd: Тема форума: Нужен совет. Как правильнее сделать?"

Re: Нужен совет. Как правильнее сделать?

Здравствуйте.
Можно ли вывести в один Грид два SQL запроса.
Чтобы при нажатии кнопки formOth_printDisplay.Button9
Выводились столбцы: Name,Priznzam_1,Priznzam_2
Или правильнее делать через вычисляемые поля?
Если запросы для вывода в Грид можно объединить, то очень хотелось бы увидеть как это делается.
Сейчас есть отдельные SQL запросы.
1. Название столбцов: Name,Priznzam_1

formOth_printDisplay.Button7.dbSQL :=   ' SELECT mod_print.name, count(*) '+
                                                   ' FROM res '+
                                                   ' LEFT OUTER JOIN mod_print ON mod_print.id=res.id_mod_print '+
                                                   ' WHERE (id_Priznzam = 1) '+
                                                   ' group by id_mod_print';

2. Название столбцов: Name,Priznzam_2

formOth_printDisplay.Button8.dbSQL :=   ' SELECT mod_print.name, count(*) '+
                                                   ' FROM res '+
                                                   ' LEFT OUTER JOIN mod_print ON mod_print.id=res.id_mod_print '+
                                                   ' WHERE (id_Priznzam = 2) '+
                                                   ' group by id_mod_print';

Re: Нужен совет. Как правильнее сделать?

Попробуйте так

formOth_printDisplay.Button7.dbSQL :=   ' SELECT mod_print.name, count(*) '+
                                                   ' FROM res '+
                                                   ' LEFT OUTER JOIN mod_print ON mod_print.id=res.id_mod_print '+
                                                   ' WHERE id_Priznzam = 1 OR id_Priznzam = 2 '+
                                                   ' group by id_mod_print ORDER BY id_Priznzam';
Dmitry.

Re: Нужен совет. Как правильнее сделать?

Спасибо Дмитрий.
Но это не совсем то, что хотелось бы увидеть.
Сейчас заполняется одно поле (count *)по условию OR ...
https://a.radikal.ru/a40/1908/6d/d9096c2c85db.jpg
https://c.radikal.ru/c03/1908/d9/68f8fa67de75.jpg
А хотелось бы, если возможно в Гриде получить 3 столбца: id,количество1,количество2 где:
количество1 =

SELECT mod_print.name, count(*) 
FROM res
LEFT OUTER JOIN mod_print ON mod_print.id=res.id_mod_print
WHERE id_Priznzam = 1 
group by id_mod_print 

а количество1 =

SELECT mod_print.name, count(*) 
FROM res
LEFT OUTER JOIN mod_print ON mod_print.id=res.id_mod_print
WHERE id_Priznzam = 2 
group by id_mod_print  

В случае если у принтера mod_print.name есть запись  для  id_Priznzam = 1 но нет записи для  id_Priznzam = 2, то в столбце количество2 ставится '0' и наоборот
Как в примере
id                |количество1|количество2
HP1200      |       7            |      0
HP1100      |       0            |       2
Canon800   |       4            |       8

Re: Нужен совет. Как правильнее сделать?

Попробуйте так

SELECT 
mod_print.name,
(SELECT COUNT(*) FROM res t1 WHERE t1.id_mod_print = res.id_mod_print  AND t1.id_Priznzam = 1),
(SELECT COUNT(*) FROM res t2 WHERE t2.id_mod_print = res.id_mod_print  AND t2.id_Priznzam = 2)

FROM res
LEFT OUTER JOIN mod_print ON mod_print.id=res.id_mod_print
Dmitry.