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


Минимальная дата


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

#1 Dinara

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

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 14 Март 2014 - 11:25

Есть подтаблица,куда заносятся данные
http://take.ms/y1keU
В самом контрагенте поле "первая оплата". Как его заполнить минимальным значением поля "дата п/п"?
То есть добавляются строки, идет проверка на минимальную дату..

#2 CbCoder

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

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

Отправлено 14 Март 2014 - 12:13

Добавляете вычисление на изменение поля "дата п/п". В самом коде делаете запрос ко всем записям подтаблицы с фильтром по контрагенту, с выборкой минимального значения данного поля:

$result = data_select_field(111, "min(f222) as min_date", "f333=",$line['Поле связи с контрагентом']['ID']); // 111 - id подтаблицы, 222 - id поля "дата п/п", 333 - id поля связи с контрагентом
$row = sql_fetch_assoc($result);
$min_date = $row['min_date'];

Затем помещаете результат в "первую оплату":

$line['Поле связи с контрагентом']['дата п/п'] = $min_date;


#3 Dinara

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

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 04 Апрель 2014 - 12:19

Это получилось)
А вот сделать так, чтобы при изменении поля "сумма" в подтаблице-в таблице поле "Итого" считалось как сумма этих сумм?)
Почему меня не очень устраивает вариант когда мы считаем из таблицы-потому что там он основан на "отображение поля". А если счет давнишний,на другой странице?а фильтр задают на первой?то сумма не обновится..
Такой код не подошел :
$result = data_select_field(74, "SUM(`f2531`) AS sum", "f2681=",$line['Номер']['ID']);
$row = sql_fetch_assoc($result);
$line['Номер']['Итого оплачено']=$row['sum'];
На изменение поля "Сумма"

#4 CbCoder

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

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

Отправлено 04 Апрель 2014 - 12:28

Чем именно не подошел, не понял? Вроде корректный код.

#5 Dinara

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

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 04 Апрель 2014 - 12:29

Сейчас еще раз попытаюсь проверить и напишу

Сообщение отредактировал Dinara: 04 Апрель 2014 - 12:31


#6 CbCoder

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

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

Отправлено 04 Апрель 2014 - 12:33

В вычислении не учитывается отбор только активных: status=0 , возможно по этой причине (берет удаленную запись, к примеру)

#7 Dinara

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

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 04 Апрель 2014 - 12:54

$result = data_select_field(74, "SUM(`f2531`) AS sum", "f2681=",$line['Номер']['ID']);
$row = sql_fetch_assoc($result);
$line['Номер']['Итого оплачено']=$row['sum'];
Как в таком коде корректно указать чтобы статус=0 был,подскажете?)


Или просто дописать в конце

$result = data_select_field(74, "SUM(`f2531`) AS sum", "f2681=",$line['Номер']['ID'] and status=0);
$row = sql_fetch_assoc($result);
$line['Номер']['Итого оплачено']=$row['sum'];

Сообщение отредактировал Dinara: 04 Апрель 2014 - 13:01


#8 Dinara

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

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 04 Апрель 2014 - 12:59

Вы правы,считает удаленные))

#9 Dinara

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

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 04 Апрель 2014 - 13:18

$result = data_select_field(74, ' SUM(`f2531`) AS sum ', '`f2681`=',$line['Номер']['ID'],' and `status`=0');
$row = sql_fetch_assoc($result);
$line['Номер']['Итого оплачено'] = $row['sum'];
Все,вот так прописала))спасибо за правильную мысль!)





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

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