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

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

JohnB

Новичок
да, . сейчас заявок 1419 записей (в zaya). задач 1643 в sib_sum

к одной заявке может быть несколько задач потому что.
 

Фанат

oncle terrible
Команда форума
писец структурко

ну, блин.
делаем простой джойн заи к сумме. получаем 1643 записи. это ты можешь?
 

JohnB

Новичок
если больше, то какую из дат завершения брать?

Все просто. Если заявка не закрыта то и даты завершения не будет.

zaya.status='7' говорит о том что выбирать только закрытие заявки 7 статс закрыта.
Значит и в sib_sum будет дата выполнения обязательно, так как заявку закрыть нельзя пока задачи не выполнены.
Понимаешь?
 

Фанат

oncle terrible
Команда форума
тип оборудования - это какое поле?

-~{}~ 27.11.07 14:28:

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

-~{}~ 27.11.07 14:29:

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

JohnB

Новичок
Тип оборудование это поле type таблицы sib_oborud

type varchar(100)
 

fixxxer

К.О.
Партнер клуба
эээ, ну и чо, select avg(sib_sum.date_complite - zaya.date_send) .... ?

(надоело уже :))
 

fixxxer

К.О.
Партнер клуба
вообще с такими названиями хрен чего вообще поймешь. зайка моя, итить твою ногу
 

JohnB

Новичок
чтобы получить таблицу где есть обе даты.
легко

zaya.id - id заявки

SELECT zaya.id, zaya.date_send, sib_sum.date_complite FROM zaya, sib_oborud, sib_sum where zaya.id=sib_sum.id_zay and zaya.id=sib_oborud.id and zaya.status='7' and sib_oborud.type='Весы' and zaya.sroch='2' group by sib_oborud.id

Вывод:

23293 = 1193805076 = 1194115701
23368 = 1193901961 = 1193991952
23391 = 1193916489 = 1193987764
23421 = 1193988447 = 1194010519
23433 = 1194001401 = 1194062312
23435 = 1194001816 = 1194063205
23468 = 1194172081 = 1194435434
23501 = 1194323378 = 1194504739
23515 = 1194332606 = 1194338556
23565 = 1194420931 = 1194429776
23624 = 1194520575 = 1194579938
23774 = 1194871515 = 1195111293
соответственно номер заявки дата подачи, дата выполнения.

-~{}~ 27.11.07 14:37:

fixxxer, таблицы были созданы до меня, самому пришлось потрудится чтобы разобратся откуда что куда.
Понимаю, какого вам.
Но я же стараюсь все объяснить.

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

Фанат

oncle terrible
Команда форума
какого х№% у тебя таблицы соединяются по условию zaya.id=sib_oborud.id? какой в нем смысл?
 

Фанат

oncle terrible
Команда форума
где НОРМАЛЬНАЯ привязка заявки к оборудованию?!
 

fixxxer

К.О.
Партнер клуба
у него одна дата в одной таблице а другая в другой.
накойхер - никто не знает

-~{}~ 27.11.07 14:39:

а иды это видимо одни и те же, иначе я вообще ничего не понимаю
 

JohnB

Новичок
select avg(sib_sum.date_complite - zaya.date_send)

че то выводит, счас буду смотреть что именно


$result_time_n = mysql_query("SELECT avg(sib_sum.date_complite - zaya.date_send) FROM zaya, sib_oborud, sib_sum where zaya.id=sib_sum.id_zay and zaya.id=sib_oborud.id and zaya.status='7' and sib_oborud.type='Весы' and zaya.sroch='2' group by sib_oborud.id");

284712.5
89991
71275
22072
60472.5
60272.5
263353
181361
5950
8845
59363
239778


Дак это же опять по 2 записям. А мне надо 1 строкой.
 

JohnB

Новичок
zaya.id=sib_oborud.id

Смотри

zaya

22601,1,'Станционная','Сергеева Н.А.',1192418285,'3 трубки Panasonic KX-A125RU установить','','','',6,'Сергеева Н.А.','0',2

sib_oborud

22601,'Другое','б/н','б/н'
 

Фанат

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

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

JohnB

Новичок
Автор оригинала: *****
тип оборудования - это какое поле?

-~{}~ 27.11.07 14:28:


блин, я не то спрашивал.
если по одной заявке есть несколько задач, то считаем время выполнения по каждой. так?

-~{}~ 27.11.07 14:29:

короче.
сначала нам нужно получить таблицу, в которой есть обе даты. это джойн заи к сумме.
а дальшеэту таблицу нужно сгруппировать по типу оборудования.
че сложного-то?
SELECT zaya.id, zaya.date_send, sib_sum.date_complite FROM zaya, sib_oborud, sib_sum where zaya.id=sib_sum.id_zay and zaya.id=sib_oborud.id and zaya.status='7' and sib_oborud.type='Весы' and zaya.sroch='2' group by sib_oborud.id

Вывод:

23293 = 1193805076 = 1194115701
23368 = 1193901961 = 1193991952
23391 = 1193916489 = 1193987764
23421 = 1193988447 = 1194010519
23433 = 1194001401 = 1194062312
23435 = 1194001816 = 1194063205
23468 = 1194172081 = 1194435434
23501 = 1194323378 = 1194504739
23515 = 1194332606 = 1194338556
23565 = 1194420931 = 1194429776
23624 = 1194520575 = 1194579938
23774 = 1194871515 = 1195111293
соответственно номер заявки дата подачи, дата выполнения.



Это не устраивает чтоли?
 

Фанат

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

JohnB, смысл этой таблицы?
 

fixxxer

К.О.
Партнер клуба
зачем тогда вообще груп бай ид?

SELECT sib_oborud.type , avg(sib_sum.date_complite - zaya.date_send) FROM zaya, sib_oborud, sib_sum where zaya.id=sib_sum.id_zay and zaya.id=sib_oborud.id and zaya.status='7' and zaya.sroch='2' group by sib_oborud.type


вот только с zaya.id=sib_oborud.id - это точно не разные иды?
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху