data_select
#1
Отправлено 18 Июнь 2014 - 15:38
$res = data_select_field(661, "sum(f17421) as summa", "status=0 AND f14181='New' AND f17571=",$line['Пользователь']);
$row = sql_fetch_assoc($res);
$line['Трафик'] = $row['summa'];
Здесь связь идет по полю Пользователь
Есть необходимость собрать эти же данные в другую таблицу, которая никоим образом не связана с этой таблицей, т.е. возможно ли сделать запрос без поля связи?
#2
Отправлено 18 Июнь 2014 - 15:51
fabrika-r (18 Июнь 2014 - 15:38) писал:
$res = data_select_field(661, "sum(f17421) as summa", "status=0 AND f14181='New' AND f17571=",$line['Пользователь']);
$row = sql_fetch_assoc($res);
$line['Трафик'] = $row['summa'];
Здесь связь идет по полю Пользователь
Есть необходимость собрать эти же данные в другую таблицу, которая никоим образом не связана с этой таблицей, т.е. возможно ли сделать запрос без поля связи?
#3
Отправлено 19 Июнь 2014 - 08:52
Данный код работает абсолютно корректно, ибо там есть поле связи.
Меня же интересует каким образом можно сделать аналогичный запрос, если поля связи впринципе нет и не будет.
#4
Отправлено 23 Июнь 2014 - 10:51
#5
Отправлено 23 Июнь 2014 - 11:10
fabrika-r (23 Июнь 2014 - 10:51) писал:
На ваш вопрос вряд ли кто ответит, т.к. сам вопрос крайне странно поставлен, абстрактным образом. Что значит "возможно ли сделать запрос без поля связи"? Разумеется можно составить какой угодно запрос, причем тут поле связи то? Кто вам вообще сказал что запрос можно составить только с полем связи? Задаете какие вам нужно условия запроса, и вперед. Поле связи используется только в частных случаях, где оно необходимо. Если же хотите более конкретный ответ, по условиям запроса, то обрисуйте более конкретно вашу задачу. Т.к. непонятно, из какой таблицы и что конкретно вы хотите выбрать.
#6
Отправлено 23 Июнь 2014 - 11:19
$res = data_select_field(661, "sum(f15811) as summa", "status=0 AND f14181='New'"); // собираем данные в т. 661 в поле 15811 $row = sql_fetch_assoc($res); $line['Трафик в месяц'] = $row['summa'];
Полученный результат хочу поместить в т. 821, поле 19361.
Если необходимо больше конкретики, дайте знать.
Сообщение отредактировал CbCoder: 23 Июнь 2014 - 13:09
#7
Отправлено 23 Июнь 2014 - 13:14
2. Судя по запросу в примере, вы просто выкинули из него условие f17571=$line['Пользователь']. Вы уверены что в таком виде запрос вернет нужный результат? Хотя если это то что вам и надо - то пожалуйста.
#8
Отправлено 23 Июнь 2014 - 14:14
2. Да, я выкинул условие, где фигурирует поле связи. поскольку его просто нет.
Мне нужно вывести сумму всех записей, подходящих под эти условия.
Сейчас выходит ошибка: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING
#9
Отправлено 23 Июнь 2014 - 14:41
#10
Отправлено 23 Июнь 2014 - 15:15
Извиняюсь, все из-за невнимательности..
#11
Отправлено 24 Июнь 2014 - 12:18
Например, Кол-во счетов, сумма счетов
#12
Отправлено 24 Июнь 2014 - 12:25
#13
Отправлено 25 Июнь 2014 - 14:58
$result1 = data_select_field(43, "count(f454) as cnt_rec1", "status=0 AND f455=0 AND f839=",$line['Юр. название']['ID']); $row1 = sql_fetch_assoc($result1); $result2 = data_select_field(43, "sum(f454) as cnt_rec2", "status=0 AND f455=0 AND f839=",$line['Юр. название']['ID']); $row2 = sql_fetch_assoc($result2); $line['Счет'] = $row1['cnt_rec2'] UNION $row2['cnt_rec2'];
Ошибка:
5: $line['f19431'] = $row1['cnt_rec2'] UNION $row2['cnt_rec2'];
syntax error, unexpected T_STRING
Сообщение отредактировал fabrika-r: 25 Июнь 2014 - 14:58
#14
Отправлено 25 Июнь 2014 - 15:51
$line['f19431'] = $row1['cnt_rec2'] ." UNION ". $row2['cnt_rec2'];
#15
Отправлено 25 Июнь 2014 - 16:02
Сообщение отредактировал fabrika-r: 25 Июнь 2014 - 16:02
#17
Отправлено 25 Июнь 2014 - 16:25
$result = data_select_field(42, "count(f435) as cnt_rec", "date(f19481) BETWEEN '2014-06-01' AND '2014-06-30'", " AND status=0 AND f13191='Действующий' AND (f19471='Новый' OR f19471='Реквизиты') AND f2801=",$line['Пользователь']); $row = sql_fetch_assoc($result); $line['Новые -> Действ.'] = $row['cnt_rec'];
Выдается ошибка SQL запроса
#18
Отправлено 25 Июнь 2014 - 16:29
Цитата
Ну так замените "UNION" на перевод строки, вы же сами его вставили? Перевод строки пишется через "\n".
#19
Отправлено 25 Июнь 2014 - 16:32
Цитата
Во-первых, если хотите быстрой помощи, оптимально писать еще и текст ошибки. Это существенно ускорит поиск причины. Во-вторых, скорее всего из-за того, что у вас зачем то запятая между 2014-06-30 и AND
#20
Отправлено 25 Июнь 2014 - 16:35
$result1 = data_select_field(43, "count(f454) as cnt_rec1", "status=0 AND f455=0 AND f839=",$line['Юр. название']['ID']); $row1 = sql_fetch_assoc($result1); $result2 = data_select_field(43, "sum(f454) as cnt_rec2", "status=0 AND f455=0 AND f839=",$line['Юр. название']['ID']); $row2 = sql_fetch_assoc($result2); $line['Счет'] = $row1['cnt_rec1']."\n".$row2['cnt_rec2'];
Эти 2 запроса можно слить в один, т.к. таблица и условия одинаковы:
$result = data_select_field(43, "count(f454) as cnt_rec, sum(f454) as sum_rec", "status=0 AND f455=0 AND f839=",$line['Юр. название']['ID']); $row = sql_fetch_assoc($result); $line['Счет'] = $row['cnt_rec']."\n".$row['sum_rec'];
Количество пользователей, читающих эту тему: 5
0 пользователей, 5 гостей, 0 анонимных