MagistrAnatol

Silver Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору Помогите составить sql запрос для Firebird 2.5 Таблица операций Код: ADS_OPER ( ..... SYMA NUMERIC(15,2) DEFAULT 1, SPR_OBORYD_ID INTEGER, ... SPR_AVARIY_DETELNO_ID INTEGER, DB_ID INTEGER, ADS_OPER_ID INTEGER NOT NULL ); | Справочник оборудования Код: SPR_OBORYD ( OBORYD_NAME VARCHAR(20), SPR_OBORYD_ID INTEGER NOT NULL ); | Детальный справочник оборудования Код: SPR_AVARIY_DETELNO ( DETALNO_NAME VARCHAR(40), MASTER_ID INTEGER, - поле для построения дерева SPR_AVARIY_DETELNO_ID INTEGER NOT NULL ); | мне надо получить сводную табличку по всем строкам SPR_OBORYD и всем строкам SPR_AVARIY_DETELNO - сума операций по полю ADS_OPER.SYMA вот что наваял - Код: select spr_oboryd.oboryd_name, spr_avariy_detelno.detalno_name, coalesce(sum( ads_oper.syma),0) kolvo from spr_oboryd left join ads_oper on (ads_oper.spr_oboryd_id=spr_oboryd.spr_oboryd_id) cross join spr_avariy_detelno where spr_oboryd.spr_oboryd_id in (2,3,4,5,6) and spr_avariy_detelno.master_id=49 and (ads_oper.spr_avariy_detelno_id = spr_avariy_detelno.spr_avariy_detelno_id) group by spr_oboryd.oboryd_name,spr_avariy_detelno.detalno_name | получаю только те строки для которых были операции если убрать Код: and (ads_oper.spr_avariy_detelno_id = spr_avariy_detelno.spr_avariy_detelno_id) | то получаю все строки что надо , НО - для той группы spr_oboryd.oboryd_name в которой были операции сума стоит одинаковая для всех строк группы, - у меня на данный момент для 4 строк группы только в одной строке есть сумма,а показывает одинаковые суммы Структуру таблиц не особо хочется менять Заранее спасибо. |