![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не получается сделать запрос IB6.5
asdf2 © (2008-04-01 16:58:00)Есть две табл.
первая:
ID, NAme
вторая
ID, foreg_ID, Len
связаны по ID и foreg_ID
надо сделать вывод Name, Sum(Len) и Count(Len). Но считать в Count(Len) только разные значения foreg_ID. Как-то сумбурно... В общем, если значения foreg_ID одинаковые, то это считается за 1.
asdf2 (2008-04-01 18:02:00) [1]во:
SELECT cm.cable_mark_name mark,
SUM(cs.count_spros) SUMMA,
(SELECT COUNT(DISTINCT count_spros)
FROM calculation_spros
WHERE count_spros > 0
AND cs.id_mark = id_mark) CN
FROM cable_mark cm, calculation_spros cs
WHERE cm.id_mark = cs.id_mark
GROUP BY cm.cable_mark_name
HAVING cs.count_spros > 0
ORDER BY cm.cable_mark_name
вроде так.
asdf2 (2008-04-01 17:13:00) [2]
> Ega23 © (01.04.08 17:09) [3]
это я сумму посчитаю, а как посчитать сумму полей, соотв поле foreg_ID которых разное?
Ega23 (2008-04-01 17:09:00) [3]group by тебе в помощь
asdf2 (2008-04-01 17:08:00) [4]
> tesseract © (01.04.08 17:00) [1]
не, ты не понял
в табл 2 есть несколько строк с одинаковыми foreg_ID.
tesseract (2008-04-01 17:00:00) [5]
> В общем, если значения foreg_ID одинаковые, то это считается
> за 1.
Конечно, это основной принципе релятивистких баз данных, все значения должны быть разными. Или выбирать SUM или что-то вроде того.