

#1
Отправлено 11 Май 2014 - 13:18
Поле f4681 - это поле даты в таблице 261. В таблице есть записи и поля даты f4681 заполнены.
Что я делаю не так? Подскажите, плииз.
$ddat=substr($line['Дата'],0,10);
data_select_field(261,"sum(f4641) as kol,sum(f4661) as summa, "`status`=0 and f4631=$nomen and f4681<=$ddat");
https://info.crm-master.info
#2
Отправлено 11 Май 2014 - 13:59
Tony999 (11 Май 2014 - 13:18) писал:
Поле f4681 - это поле даты в таблице 261. В таблице есть записи и поля даты f4681 заполнены.
Что я делаю не так? Подскажите, плииз.
data_select_field(261,"sum(f4641) as kol, sum(f4661) as summa ", "`status`=0 and f4631 = ", $nomen, " and left(f4681, 10) <= left('".$line['Дата']."', 10) ");Поправил, с планшета туго писать). А что за переменная $nomen?
Сообщение отредактировал wondertalik: 11 Май 2014 - 21:57
#3
Отправлено 11 Май 2014 - 16:55
Кстати, мой код, который я привел, вполне нормально все фильтровал.... только вот с датой не получается....
https://info.crm-master.info
#4
Отправлено 11 Май 2014 - 19:26
Tony999 (11 Май 2014 - 13:18) писал:
Поле f4681 - это поле даты в таблице 261. В таблице есть записи и поля даты f4681 заполнены.
Что я делаю не так? Подскажите, плииз.
$ddat=substr($line['Дата'],0,10);
data_select_field(261,"sum(f4641) as kol,sum(f4661) as summa, "`status`=0 and f4631=$nomen and f4681<=$ddat");
Запятую уберите после summa, и поставьте ее перед `status` + не хватает двойной кавычки
data_select_field(id таблицы, "поля выбора", "условия");
data_select_field(261,"sum(f4641) as kol,sum(f4661) as summa ","`status`=0 and f4631=$nomen and f4681<=$ddat");
Сообщение отредактировал maksn: 11 Май 2014 - 19:35
#5
Отправлено 11 Май 2014 - 20:00
Сообщение отредактировал wondertalik: 11 Май 2014 - 20:04
#6
Отправлено 11 Май 2014 - 21:45
Так все и было... и работает, но как только фильтр по дате не прицеплял - ничего не получалось: или ошибка вычисления, или 0 записей находит, хотя они есть.. и с датой, подходящей по условиям.
$nomen - это номенклатура, с ней все ок, фильтрует по этому полю.
Сообщение отредактировал Tony999: 11 Май 2014 - 21:48
https://info.crm-master.info
#7
Отправлено 11 Май 2014 - 21:51
#8
Отправлено 11 Май 2014 - 21:56
SELECT sum(f4641) as kol, sum(f4661) as summa FROM `f_data261` WHERE `status`=0 and f4631 = 19 and left(f4681, 10) <= left(2014-05-11 00:00:00, 10)
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 '00:00:00, 10)' at line 1
Для этого я пытался эти нули убрать: $ddat=substr($line['Дата'],0,10);
Но все равно пока не работает....
https://info.crm-master.info
#9
Отправлено 11 Май 2014 - 21:58
Tony999 (11 Май 2014 - 21:56) писал:
SELECT sum(f4641) as kol, sum(f4661) as summa FROM `f_data261` WHERE `status`=0 and f4631 = 19 and left(f4681, 10) <= left(2014-05-11 00:00:00, 10)
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 '00:00:00, 10)' at line 1
Для этого я пытался эти нули убрать: $ddat=substr($line['Дата'],0,10);
Но все равно пока не работает....
Сообщение отредактировал wondertalik: 11 Май 2014 - 22:01
#10
Отправлено 11 Май 2014 - 22:05
Да, пробовал исправленный вариант, вот он ошибку и дает. Нули убрать - работает, но записей 0. Фильтр по дате убрать - все находит.
Меня больше волнует, как прочитать поле f4681, хотя я точно знаю, что это обычно поле Дата в таблице 261.
Через echo какую-то ерунду выводят всем поля Дата, типа 1982 - и все. Наверное, неправильно вывожу.
Спасибо за отклик, по скайпу сейчас не могу...
https://info.crm-master.info
#11
Отправлено 11 Май 2014 - 22:07
Сообщение отредактировал wondertalik: 11 Май 2014 - 22:12
#12
Отправлено 11 Май 2014 - 22:50
Таблица 261 - это обычная подчиненная таблица, где есть поля Номенклатура ($nomen - это связь, число значит), Кол-во, Сумма, Дата..
В запросе нужно посчитать сумму Кол-ва и сумму Суммы до определенной даты, меньшей, чем в указано в переменной $line['Дата'] главной таблицы.
Если я считаю без фильтра по Дате, то все ок, я получаю Кол-во и Сумму нужной мне номенклатуры во всей таблице 261 и таким образом узнаю среднюю себестоимость этой номенклатуры. Однако, для того, если потом я захочу что-то изменить, добавить или списать товар задним числом, то мне надо знать себестоимость этой номенклатуры на конкретную дату... Такая вот задача...
Не знаю, помогут ли Вам эти подробности... Но все равно спасибо за помощь!
https://info.crm-master.info
#13
Отправлено 11 Май 2014 - 22:59
data_select_field(261,"sum(f4641) as kol, sum(f4661) as summa ", "`status`=0 and f4631 = ", $nomen, " and left(f4681, 10) <= left('".$line['Дата']."', 10) ");
Сообщение отредактировал wondertalik: 12 Май 2014 - 02:24
#14
Отправлено 11 Май 2014 - 23:07
Many many thank's!!!!!!!!!!!!
https://info.crm-master.info
#15
Отправлено 11 Май 2014 - 23:08
#16
Отправлено 11 Май 2014 - 23:56
wondertalik (11 Май 2014 - 20:00) писал:
wondertalik
Спасибо, конечно, за советы, но...Какого оформления? какого кода? Вы это о чем? Я всего лишь показал где ошибки в data_select... у ТС
, что приводило к генерации SQLError. См. цитаты ниже
Tony999 (11 Май 2014 - 13:18) писал:
data_select_field(261,"sum(f4641) as kol,sum(f4661) as summa, "`status`=0 and f4631=$nomen and f4681<=$ddat");
Tony999 (11 Май 2014 - 16:55) писал:
Встречное предложение. Раздавайте советы тем, кто их спрашивает. Тоже не упрек, а пожелание

Сообщение отредактировал maksn: 12 Май 2014 - 01:24
#17
Отправлено 12 Май 2014 - 01:41
Сообщение отредактировал wondertalik: 12 Май 2014 - 01:51
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных