Поиск:

Ответ в темуСоздание новой темы Создание опроса
> FastReporte и заданная таблица 
:(
    Опции темы
Vas
Дата 30.11.2006, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



Salaman,
g.mes between 1 and 2 (1<=g.mes<=2) берет 2 месяца, а не один может здесь и есть ошибка если только январь брать и k.mes не надо ставить условие, уже стоит g.mes=k.mes, а g.mes у тебя определен условием, попробуй так:
Код

select 'удель.вых.м/г3' as type,  g.mes, sum((k.p2+k.p4+k.p6+k.p8+k.p10+k.p12+k.p14+k.p16+k.p18+k.p20+k.p22+k.p24)) /sum((g.p2+g.p4+g.p6+g.p8+g.p10+g.p12+g.p14+g.p16+g.p18+g.p20+g.p22+g.p24)) as dayly
   from gaz g, kond k 
   where g.god =2008 and g.mes=1 and k.god =2008  and
   g.kod_ms=k.kod_ms and g.mes=k.mes 
   group by g.kod_ms, g.mes
union
select 'Газ' as type, g.mes,
 sum((g.p2+g.p4+g.p6+g.p8+g.p10+g.p12+g.p14+g.p16+g.p18+g.p20+g.p22+g.p24)) as dayly from gaz as g
where god =2008 and mes=1
group by g.kod_ms, g.mes  
union
select 'Конденсат' as type, k.mes, 
sum((k.p2+k.p4+k.p6+k.p8+k.p10+k.p12+k.p14+k.p16+k.p18+k.p20+k.p22+k.p24)) as dayly from kond as k
where god = 2008 and mes=1
group by  k.kod_ms,k.mes       
ORDER BY  type, mes


P.S. Salaman, у меня MySQL 3.23 он UNION не поддерживает, поэтому не проверю. Так что дерзай сам. А вообще советую, отладить все три запроса по одному, а потом их объединить, так тебе будет проще. Ну а без UNION гляну, как время будет.

Это сообщение отредактировал(а) Vas - 30.11.2006, 16:44


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
Salaman
Дата 1.12.2006, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 7.4.2006

Репутация: нет
Всего: нет



VAS  ты наверно не правильно понял. Я просто показал  за январь. А во всех месяцах проблема с   вычислением  этот месторождением Делаю так как ты сказал по отдельности правильно суммируют но в вычесление 'удельного' вот пример
Код
select 'удель.вых.м/г3' as type,  g.mes,'факт' as fak, sum((k.p2+k.p4+k.p6+k.p8+k.p10+k.p12+k.p14+k.p16+k.p18+k.p20+k.p22+k.p24)) /sum((g.p2+g.p4+g.p6+g.p8+g.p10+g.p12+g.p14+g.p16+g.p18+g.p20+g.p22+g.p24)) as dayly
   from gaz g, kond k 
   where g.god =2008 and g.mes between 1 and 2 and k.god =2008 and k.mes between 1 and 2 and
   g.kod_ms=k.kod_ms and g.mes=k.mes 
   group by g.kod_ms, g.mes


Правильный ответ должен так за январь 1,25 а он почемуто добавляют еще 1,25 и в итого ответ2,50
за февраль парвильный так 1,50 а в этом запросе 3,00
 smile  
PM MAIL   Вверх
Salaman
Дата 2.12.2006, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 7.4.2006

Репутация: нет
Всего: нет



VAS  ты как нибудь попробуй на MySQL 3.23 без UNION очень прошу структуры таблиц 
PM MAIL   Вверх
Vas
Дата 4.12.2006, 08:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



Salaman, пробуй делать выборку из вложенных запросов, котрые сразу считают суммы, иначе при связи из-за id_gaz записи двоятся из-за неполного указания условий:
Код

select g.kod_ms, g.mes, sum(g.p2+g.p4+g.p6+g.p8+g.p10+g.p12+g.p14+g.p16+g.p18+g.p20+g.p22+g.p24) as g_sum
   from gaz g  
   where g.god=2008 and g.mes=1
   group by g.kod_ms, g.mes

Код

select k.kod_ms, k.mes, sum(k.p2+k.p4+k.p6+k.p8+k.p10+k.p12+k.p14+k.p16+k.p18+k.p20+k.p22+k.p24) as k_sum
   from kond k  
   where k.god=2008 and k.mes=1
   group by k.kod_ms, k.mes

и еще когда делишь, делитель бери по условию, на 0 делить нельзя сам знаешь, пиши что-то типа
Код

k_sum/if(sum g_sum=0, 1, g_sum) as daily

Самое обидное что и вложенные запросы на 3.23 не пашут, а токи с 4.1 введены smile


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
Salaman
Дата 11.12.2006, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 7.4.2006

Репутация: нет
Всего: нет



Спасибо VAS за понимания и помощь я твой запрос пробовал но не получился короче мне помог один друг как ты оракулист скачал 5 версию Мускула и потом создал View вот запрос 
Код
create view v_gaz as
select kod_ms, god, mes, sana, id_gaz,sum(P2) as P2,sum(P4) as P4,sum(P6) as P6,sum(P8) as P8,sum(P10) as P10,sum(P12) as P12,sum(P14) as P14,sum(P16) as P16 ,    
sum(P18) as P18,sum(P20) as P20,sum(P22) as P22,sum(P24) as P24    
from gaz  
group by kod_ms,god,mes,sana


select g.kod_ms
                ,'удель.вых.м/г3' as type
                ,g.mes,'факт' as fak
                , sum(k.p2+k.p4+k.p6+k.p8+k.p10+k.p12+k.p14+k.p16+k.p18+k.p20+k.p22+k.p24)/sum(g.p2+g.p4+g.p6+g.p8+g.p10+g.p12+g.p14+g.p16+g.p18+g.p20+g.p22+g.p24) as dayly
  from v_gaz g, kond k 
 where g.god =2008 
   and g.mes between 1 and 2 
      and g.kod_ms=k.kod_ms 
      and g.mes=k.mes 
      and k.god=g.god
group by g.kod_ms, g.mes
union
select g.kod_ms
                ,'Газ' as type
                ,g.mes
                ,'факт' as fak,
                sum(g.p2+g.p4+g.p6+g.p8+g.p10+g.p12+g.p14+g.p16+g.p18+g.p20+g.p22+g.p24) as dayly 
from       gaz g
where  god =2008 and mes between 1 and 2
group by g.kod_ms, g.mes  
union
select k.kod_ms
                ,'Конденсат' as type
                , k.mes
                ,'факт' as fak
                ,sum(k.p2+k.p4+k.p6+k.p8+k.p10+k.p12+k.p14+k.p16+k.p18+k.p20+k.p22+k.p24) as dayly 
from       kond k
where god = 2008 
and      mes between 1 and 2
group by  k.kod_ms,k.mes       
ORDER BY  kod_ms, type, mes
 Вот теперь правильно вычисляет. Я бы хотел еще спросить наверно это не считается оффтопом VAS как мне теперь сделать общыю сумму ну который в шапке отчете Fastreporte заранее благодарен 
PM MAIL   Вверх
Salaman
Дата 29.1.2007, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 7.4.2006

Репутация: нет
Всего: нет



VAS плз этот запрос опять не правильно вычесляет 
 
Код

select g.kod_ms, sp.name,'удель.вых.г/м3' as type, me.name,g.mes,'факт' as fak,
round((sum(k.p2+k.p4+k.p6+k.p8+k.p10+k.p12+k.p14+k.p16+k.p18+k.p20+k.p22+k.p24)/round(sum(g.p2+g.p4+g.p6+g.p8+g.p10+g.p12+g.p14+g.p16+g.p18+g.p20+g.p22+g.p24)/1000,3))/1000,3) as dayly
  from v_gaz g join v_kond k inner join spr_ms sp on g.kod_ms=sp.kod inner join mesac me on k.mes=me.kod 
 where g.god =2006
   and g.mes=6 
      and g.kod_ms=k.kod_ms 
      and g.mes=k.mes 
      and k.god=g.god
group by g.kod_ms, g.mes
union
select g.kod_ms, sp.name,'Газ' as type, me.name,g.mes,'факт' as fak, round(sum(g.p2+g.p4+g.p6+g.p8+g.p10+g.p12+g.p14+g.p16+g.p18+g.p20+g.p22+g.p24)/1000,3) as dayly 
from gaz g inner join spr_ms as sp on g.kod_ms=sp.kod join mesac as me on g.mes=me.kod 
where  god =2006 and mes=6
group by g.kod_ms, g.mes  
union
select k.kod_ms, sp.name,'Конденсат' as type,me.name, k.mes,'факт' as fak , sum(k.p2+k.p4+k.p6+k.p8+k.p10+k.p12+k.p14+k.p16+k.p18+k.p20+k.p22+k.p24) as dayly 
from  v_kond k  join spr_ms as sp on k.kod_ms=sp.kod join mesac as me on k.mes=me.kod  
where god =2006 
and      mes=6
group by  k.kod_ms,k.mes       
ORDER BY  kod_ms, type, mes


Код

1    Урта-Булок    Газ    Июнь    6                      факт      2.232
1    Урта-Булок    Конденсат    Июнь    6             факт      1248.000
1    Урта-Булок    удель.вых.г/м3    Июнь    6    факт      5.778


Может вложенными запросами поможешь заранее благодарен

PM MAIL   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0455 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.