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


Подтягивать значение из таблицы без связи


Сообщений в теме: 5

#1 branev

    Участник

  • Пользователи
  • PipPip
  • 14 сообщений

Отправлено 22 Октябрь 2015 - 17:02

Добрый день

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

Конкретно в таблицу Счета значение поля X из таблицы Документы одной и той же заданной строки.

Сообщение отредактировал branev: 22 Октябрь 2015 - 17:02


#2 CbCoder

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

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 22 Октябрь 2015 - 18:02

Так в чем проблема то, используйте стандартный SELECT запрос к БД. Можно с помощью наших функций. Примеров море на форуме.

#3 branev

    Участник

  • Пользователи
  • PipPip
  • 14 сообщений

Отправлено 31 Октябрь 2015 - 22:11

Спасибо а можете помочь еще с вычислением? Здесь посложнее )

Создали поле Сумма по услугам в таблице Счет.
Из таблицы Позиции счета (по этому счету) нужно суммировать поля Итого у строк у которых Категория равна Услуга.
Короче говоря нужно посчитать Сумму по услугам и добавить в счет.

Сообщение отредактировал branev: 01 Ноябрь 2015 - 10:50


#4 branev

    Участник

  • Пользователи
  • PipPip
  • 14 сообщений

Отправлено 01 Ноябрь 2015 - 10:49

Сделал на базе вычисления "Итого в счет" добавив одно условие:
$sqlQ = "SELECT SUM(`f2051`) AS sum FROM ".DATA_TABLE."74 WHERE `f807`=".$line['Счет']['raw']." and `f4881`='Услуга' and status=0 and `id`<>".$ID;
  $pre = sql_query($sqlQ) or die(mysql_error());
  $row = sql_fetch_assoc($pre);

  if ($row['sum']===NULL)
	 {
	   $line['Счет']['Сумма по услугам']=$line['Итого'];
	 }
	 else
	 {
	   $line['Счет']['Сумма по услугам']=$row['sum']+$line['Итого'];
	 }

Но при отсутствии строк с категорией Услуга суммирует и добавляет в Счет значение последней строки. Помогите это исправить? Спасибо!!!

Сообщение отредактировал branev: 01 Ноябрь 2015 - 10:51


#5 CbCoder

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

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 02 Ноябрь 2015 - 09:31

У вас нет условия по текущей строке, только в запросе, который считает по остальным строкам.

Добавляем условие:

$sqlQ = "SELECT SUM(`f2051`) AS sum FROM ".DATA_TABLE."74 WHERE `f807`=".$line['Счет']['raw']." and `f4881`='Услуга' and status=0 and `id`<>".$ID;
$pre = sql_query($sqlQ) or die(mysql_error());
$row = sql_fetch_assoc($pre);

if ($line['Категория']=="Услуга") $cur_value = $line['Итого']; else $cur_value = 0; // расчет суммы в текущей строке, в зависимости от поля Категория

if ($row['sum']===NULL)
{
   $line['Счет']['Сумма по услугам']=$cur_value;
}
else
{
   $line['Счет']['Сумма по услугам']=$row['sum']+$cur_value;
}


#6 branev

    Участник

  • Пользователи
  • PipPip
  • 14 сообщений

Отправлено 02 Ноябрь 2015 - 14:35

:rolleyes:





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

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