Перейти к содержимому


Сквозная выборка в вычислении


  • Вы не можете ответить в тему
В этой теме нет ответов

#1 dev77rus

    Активный участник

  • Пользователи
  • PipPipPip
  • 114 сообщений
  • Пол:Мужчина

Отправлено 09 Октябрь 2012 - 09:16

Зравствуйте,
не получается создать вычисление, устал эксперементировать, прошу помощи.
Есть таблицы, схема взаимодействия в прикрепленном файле.
Необходимо создать вычисление в таблице №90, где в строке, которая заполняются из справочника №91, будет вычисляться сумма таких же строк справочника в таблице №92, при этом запись таблицы №90 должна принадлежать той же записи из главной таблицы №4, к которой принадлежит запись таблицы №18, к которой, в свою очередь, принадлежит запись таблицы №92.


Создал следующий код, который выдает не совсем те вычисления.
Как я примерно представляю, нужно сравнить множество со множеством и выбрать необходимые записи, у меня наверное сравнивается только какая-то одна запись из первой выборки. И что мне совсем не понятно - при просмотре таблицы №90 как подчиненной через таблицу №4 вычисление выдает одни данные, при просмотре таблицы №90 в режиме таблицы - другие данные.
Подскажите, что не так?


$data['rem_rab_spr'] = $line['Работы по регламенту']['id'];
$data['cur_car'] = $line['ТС']['id'];

$sqlQuery2 = "SELECT * FROM ".DATA_TABLE."18 WHERE status=0 AND f154='".$data['cur_car']."'";
$result2 = mysql_query($sqlQuery2) or die(mysql_error()."<br>".$sqlQuery2);
$row2 = mysql_fetch_array($result2);

$sqlQuery1 = "SELECT COUNT(*) as cnt1 FROM ".DATA_TABLE."92 WHERE status=0 AND f1125='".$data['rem_rab_spr']."' AND f1127='".$row2['id']."'";
$result1 = mysql_query($sqlQuery1) or die(mysql_error()."<br>".$sqlQuery1);
$row1 = mysql_fetch_array($result1);

$line['Состояние']=$row1['cnt1'];


Заранее благодарен!


UPD:

Если в первой выборке поставить COUNT(*) as cnt, а потом вывести результат print_r($row2(cnt)), то выводится правильтное количество искомых строк. Если оставить запрос как есть и вывести массив print_r($row2), то выводится несколько значений массива, но никак не все.
Откуда берется такое ограничение? Некорректная работа функции $line?

Прикрепленные изображения

  • Прикрепленное изображение: таблицы бд.jpg

Сообщение отредактировал dev77rus: 09 Октябрь 2012 - 13:32






Количество пользователей, читающих эту тему: 3

0 пользователей, 3 гостей, 0 анонимных