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


посчитать разность из подтаблицы


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

#1 oknik

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

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

Отправлено 28 Январь 2016 - 19:29

помогите пожалуйста написать вычисление (как я понимаю оно не сложное совсем, но знаний к сожалению не хватает)

ЗАДАЧА:
есть таблица Сотрудники и подтаблица Зарплата

в таблице Сотрудники поля:
"Остаток ЗП" (число)

в таблице Зарплаты поля:
"ФИО сотрудника" (связь с табл. Сотрудники)
"Начислено" (число)
"Списано" (число)

ВЫЧИСЛЕНИЕ:
Остаток ЗП = (по фильтру "ФИО сотрудника" сумма по полю "Начислено") - (по фильтру "ФИО сотрудника" сумма по полю "Списано")

#2 CbCoder

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

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

Отправлено 29 Январь 2016 - 09:09

https://clientbase.r...6/calculations/ пример 3

#3 oknik

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

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

Отправлено 02 Февраль 2016 - 01:24

подскажите в чем ошибка?

КОД:

$sqlQuery1 = "SELECT sum(f6971) as summa FROM ".DATA_TABLE." 411 WHERE status=0 AND f6961='".$line['Наши сотрудники']['ID']."'";
$res1 = sql_query($sqlQuery1);
$row1 = sql_fetch_array($res1);
$summa1 = $row1['summa'];
$sqlQuery2 = "SELECT sum(f6981) as summa FROM ".DATA_TABLE." 411 WHERE status=0 AND f6961='".$line['Наши сотрудники']['ID']."'";
$res2 = sql_query($sqlQuery2);
$row2 = sql_fetch_array($res2);
$summa2 = $row2['summa'];
$line['Наши сотрудники']['Остаток ЗП'] = $summa1 - $summa2;

ОШИБКА:

1: $sqlQuery1 = "SELECT sum(f6971) as summa FROM ".DATA_TABLE." 411 WHERE status=0 AND f6961='".$line['Наши сотрудники']['ID']."'";
2: $res1 = sql_query($sqlQuery1);
3: $row1 = sql_fetch_array($res1);

Ошибка SQL запроса:
SELECT sum(f6971) as summa FROM f_data 411 WHERE status=0 AND f6961=''
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '411 WHERE status=0 AND f6961=''' at line 1


#4 wondertalik

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

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 02 Февраль 2016 - 10:27

if($line['Наши сотрудники']['ID'] > 0) {
    $sqlQuery1 = "SELECT sum(f6971) as summa FROM ".DATA_TABLE."411 WHERE status=0 AND f6961='".$line['Наши сотрудники']['ID']."'";
    $res1 = sql_query($sqlQuery1);
    $row1 = sql_fetch_array($res1);   
}
У вас в поле связи судя по всему нет пусто, и еще вместо

".DATA_TABLE." 411

нужно
".DATA_TABLE."411


#5 oknik

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

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

Отправлено 02 Февраль 2016 - 13:24

Просмотр сообщенияwondertalik (02 Февраль 2016 - 10:27) писал:

if($line['Наши сотрудники']['ID'] > 0) {
	$sqlQuery1 = "SELECT sum(f6971) as summa FROM ".DATA_TABLE."411 WHERE status=0 AND f6961='".$line['Наши сотрудники']['ID']."'";
	$res1 = sql_query($sqlQuery1);
	$row1 = sql_fetch_array($res1);  
}
У вас в поле связи судя по всему нет пусто, и еще вместо

"нет пусто" - ?

#6 oknik

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

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

Отправлено 02 Февраль 2016 - 19:57

сейчас такую ошибку выдает:

Ошибка системы.


Error generated:

Ошибка SQL запроса:
UPDATE f_data46 SET Наши сотрудники='' WHERE id=2
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'сотрудники='' WHERE id=2' at line 1


#7 CbCoder

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

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

Отправлено 03 Февраль 2016 - 11:57

А код какой? Откуда update то взялся? В коде выше его вроде как нет.





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

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