Суммирование переменной внутри цикла.

Статус
В этой теме нельзя размещать новые ответы.

Фанат

oncle terrible
Команда форума
fixxxer
авг будет работать, только если мы агрегируем.
а если агрегируем, то получается другое число.

если этот гений, конечно, ничего не напутал

-~{}~ 27.11.07 15:38:

Под работой подразумевается тоже самое что примерно эта запись

select sum(date_send) from zaya where id>'6'
этот запрос возвращает ОДНУ строку. а под условие попадает МНОГО. которые и сумируются!
а у тебя запрос возвращает МНОГО строк, причем под условие попадает каждый раз только одна. и суммироваться им НЕ С ЧЕМ!
Неужели так трудно это сообразить?
 

JohnB

Новичок
В это въехал, фанат.

Что насчет суммирования МНОГИХ строк которые мне возвращает запрос?

-~{}~ 27.11.07 15:47:

авг будет работать, только если мы агрегируем.
а если агрегируем, то получается другое число.

Все верно, так и есть.
Вот мы сейчас циклы совсем не трогали, а получается что вернулись к началу.
Время выяснили, разницу тоже по каждой заявке и оборудованию.
Осталось только это время сложить и разделить на количество задач.
И тут такой затык (((
 

Фанат

oncle terrible
Команда форума
не.
осталось поспрашивать более опытных товарищей, как правильно написать запрос или изменить структуру БД =)
 

JohnB

Новичок
Лучше структуру не менять. )
А насчет опытности. Мне казалось что этого у тебя в избытке. Читаю форум давно, много подчеркнул с твоих постов.
 

Фанат

oncle terrible
Команда форума
вообще, по уму, надо бы напрямую связать железяки с работами. без посредника в виде заявки.
 

Фанат

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

по поводу опыта.
я хорошо умею объяснять элементарные вещи
я средне знаю пхп
я sql я знаю плохо.

-~{}~ 27.11.07 16:02:

Средствами php сложить можно.
но поскольку у тебя 2 тыщи записей, сделать это будет нереально.
Надо делать базой.
 

JohnB

Новичок
Просто в таблице sib_oborud именно и есть информация что типа вот по этой заявке это оборудование числилось, значит считаем время.

Если просто брать справочник оборудования где нет номера заявок, то мы не получим желаемого.

-~{}~ 27.11.07 16:05:

Понятно, тем неменее помощь была оказана и так.

-~{}~ 27.11.07 16:10:

*****, если встретишь ответ на мой вопрос напиши плиз.
Пойду дальше искать. )
 

Фанат

oncle terrible
Команда форума
Если просто брать справочник оборудования где нет номера заявок
НУ Я И ГОВРЮ! что номера заявок ДОЛЖНЫ БЫТЬ С ВЯЗАНЫ С ОБОРУДОВНИЕМ.
только не заявок, а работ.
работы должны быть самостоятельными, не зависеть от заявок.

-~{}~ 27.11.07 16:17:

мсдается мне, что если в таблиццу работ писать время начала, и брать его оттуда, то будет считаьт правильно.
чисто для жксперимента - сделай так?

-~{}~ 27.11.07 17:20:

блин. идиотизм.
почему железяка указывается для ЗАЯВКИ, а не для РАБОТЫ?!
работа выполняется по конкретной железяке?
а тогда почему железяка болтается, как цветок в проруби, просто ни к чему не обязывающим списком?

в sib_sum должен быть id от sib_oborud!
отсюда и неразбериха!
и даже последний запрос считает ерунду!

-~{}~ 27.11.07 17:26:

если ты сейчас скажешь, что в РАБОТЕ может быть много железяк, то вешайся.
добавить одно поле в таблицу куда проще, чем еще две таблицы и кучу связей.

если же ты начнешь кочевряжиться, и рассказывать, что таблицу менять нельзя, то можешь сразу идти к начальству и говорить ему, что задача не решается - в таблице для этого НЕТ ДАННЫХ.
 

JohnB

Новичок
Я тут )

Во первых задача решаема, я просто уверен.

Во вторых. Не нужно прикапываться к задачам )))
У нас есть 3 переменные.
Тип оборудования, дата подачи заявки и дата ее закрытия. (иммено заявки). Ибо я объяснял, что заявка не может быть закрыта, если внутри все задачи не выполнены.


Почему железяка указывается для заявки. Так сказал босс. Он сочел, что привязка оборудования к задачам, это чересчур, поэтому вешаем оборудование на заявку, а задачи внутри типа как бы по этому оборудованию решаются. Тут ты прав, не совсем логично, но хрен с ним. Как сказали, так и написал.


в sib_sum должен быть id от sib_oborud!

Так он там и есть.
Вообще у меня система построена на 4 таблицах основных .
3 из них ты уже видел, это zaya(таблица заявок), sib_sum (таблица задач), sib_oborud(таблица оборудования) и еще одна это sib_comm(таблица лога, по каждой заявке ведется лог, кто что сделал, как в винде примерно)

Дак вот отличительная особенность всех этих 4 таблиц, это то что они имеют поле id которое есть id заявки из zaya формирующееся там auto_increment 'om.
По нему (id) и идет связь между таблицами, что выцеплять при порсмотре заявки из какой.

если ты сейчас скажешь, что в РАБОТЕ может быть много железяк, то вешайся

Слава богу, как уже отметил раньше к работам железо не подцепляется.

Я не начну кочевряжится менять можно все.
Весь проект писался этими же руками что и этот текст, поэтому поменять что то проблем нет. Главное без потери данных.


И почему наш результат не верный, тот который по весам? Разницу запрос все же считает.
И почему ты думаешь что это будет не правильно сделать средствами php, ведь из базы не все 1600 записей выбираются верно? Средствами php нужно лишь суммировать результат и записать в ячейку на против соответствующего типа оборудования?
 

Фанат

oncle terrible
Команда форума
Так.
Какую-то ты херню пишешь.

к одной заявке, говоришь, может быть прицеплено несколько железок?
ну-ка, покажи мне пример записей в сиб оборуд, относящихся к одной заявке.
 

Фанат

oncle terrible
Команда форума
блин, с этим разобрались.
id дублируется, небось.
ну и бредовая струтура.
зря я предыдущий текст, блин, стер, который собирался писать.
придется заново набирать
, ведь из базы не все 1600 записей выбираются верно?
НЕТ!!!!!
каким шрифтом, на каком языке тебе еще написать, чтобы до тебя дошло?!!!!

у тебя заявка, на ремонт принтера и факса. две записи в оборуд
две записи в сиб сум.
у одной окончание через сутки, а у другой - через неделю.

а теперь скажи мне, внебрачный сын Эйнштейна, КАК ТЫ ОПРЕДЕЛИЛ, что ремонтировалось сутки, а что - неделю?!!!
вот у тебя в сиб сум две даты. КАКАЯ ИЗ НИХ ОТНОСИТСЯ К ФАКСУ?
 

JohnB

Новичок
+-------+---------------------+----------------+----------+---------------
| id | type | marka | serial |
+-------+---------------------+---------------------+----------+--------------
| 24277 | Кассовая клавиатура | Wincor Nixdorf | б/номера |
| 24277 | Касса | Wincor Nixdorf | 00021252 |
+-------+---------------------+----------------+----------+-------------------
 

Фанат

oncle terrible
Команда форума
Ты, блин, русский язык вообще понимаешь?
Я, мля, ему пишу, что для решения задачи НЕТ ДАННЫХ. А ему - божья роса! "ты к задаче прикаываешься".
Если хочешь - к тебе прикопаюсь! Спрошу, давно ли тебе лоботомию делали.
 

JohnB

Новичок
Но если все таки брать время выполнения последней задачи из sib_sum тогда можно вот так.

$result_time = mysql_query("SELECT date_complite FROM sib_sum WHERE id_zay='24277' order by date_complite DESC limit 1");
 

Фанат

oncle terrible
Команда форума
Ты задачу свою помнишь, дендроид?
тебе надо не заявку считать.
а время ремонта принтера. я тебе о нем говорю.

Вот ответь мне, мутант, как ты узнаешь время ремонта принтера?

-~{}~ 27.11.07 20:07:

Но если все таки брать время выполнения последней задачи
ДА НЕ ЗАДАЧА ТЕБЯ ИНТЕРЕСУЕТ!!!!!!!!!
НЕ ЗАДАЧА!!! А ТИП ОБОРУДОВАНИЯ!!!!

Что у тебя с головой? Ты помнишь, вообще, что твой запрос должен делать? он должен считать время ремонта оборудования!!!!
А это время у тебя, нигде не пишется!

Побейся говловой об стену. может, так быстрее дорйдет

-~{}~ 27.11.07 20:10:

Хоть один ответ я от тебя увижу не как от девочки в каске "все ништяк! все нормально! хахаха!",а чтобы видно было, что ты хотя бы ЗАДУМАЛСЯ о том, что я тебе говорю? Хотя бы ПРЕДПОЛОЖИЛ, что я прав, утверждая, что данных о времени ремонта тезхники у тебя никаких в базу не пишется?
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху