Задавайте вопросы, мы ответим
Вы не зашли.
Может, кто знает возможно ли пронумеровать строки в view?
Неактивен
не очень понятно о чем идет речь, поясните на примере
использовать переменные во view можно
Неактивен
Вот об этом
View's SELECT contains a variable or parameter
Неактивен
был не прав
Неактивен
Для меня было-бы лучше, если бы Вы оказались правы.
Значит нет способа пронумеровать строки в View?
Может у кого будут идеи если я расскажу, что именно мне нужно?
Суть задачи.
У меня есть сложная View. Запрос, который ее использует должен вычислять разницу между значениями соседних строк.
Вот так, при условии, что удаться получить номера строк.
Отредактированно klow (05.02.2017 09:26:56)
Неактивен
А можно ли сделать соответствующий ORDER BY в итоговом запросе? Тогда можно было бы вычислять разницу значений у соседей с помощью переменных.
Неактивен
rgbeast написал:
А можно ли сделать соответствующий ORDER BY в итоговом запросе?
Не понял, можно детальнее?
rgbeast написал:
Тогда можно было бы вычислять разницу значений у соседей с помощью переменных.
С переменными в запросе под .net тоже есть проблемы. Не хотелось бы сейчас отвлекаться на это.
Неактивен
Имел в виду классическую схему вычисления разности соседей в упорядоченной выборке:
Неактивен
rgbeast написал:
Имел в виду классическую схему вычисления разности соседей в упорядоченной выборке:
SET @prev=0; SELECT value-@prev,@prev:=value FROM A ORDER BY ord;
Спасибо! Не сообразил, что действительно и так можно.
rgbeast написал:
Про .net и переменные не знаю.
При стандартном подключении все переменные @ должны быть заменены на их значения еще до передачи в БД. Есть правда обходной путь. Наверно, буду его использовать.
Еще раз спасибо!
Неактивен
Опасное это дело стало, использовать переменные сейчас, оптимизаторы шибко умные пошли, не советую. Посчитать разницу между соседними строками нет проблем на клиенте, можно хранимую процедурку для этого небольшую написать в конце концов.
Неактивен
На клиенте сложно или я не понимаю как. Дело в том, что в идеале, должна возвращаться одна строка. Или если идет несколько, то вычисление уже должно уже быть на первой строке. С переменными можно после отсортировать в нужном порядке и отобрать. А клиенте уже это не получиться (вернее сложно).
Процедуру без переменных тоже не понимаю, как можно использовать?
Неактивен
На клиенте - имелось в виду select'нуть нужные столбцы из всего набора строк, и на клиентской стороне уже посчитать нужные разницы.
Что касается процедуры - просто в хранимой процедуре в цикле извлекаете строку за строкой и считаете нужные Вам разницы.
Неактивен
deadka написал:
На клиенте - имелось в виду select'нуть нужные столбцы из всего набора строк, и на клиентской стороне уже посчитать нужные разницы.
Понятно. В моем случае не очень хорошее решение. Придется существенно дописывать код. Я сразу вывожу информацию пользователю, без педобработки (не считая SELECT).
deadka написал:
Что касается процедуры - просто в хранимой процедуре в цикле извлекаете строку за строкой и считаете нужные Вам разницы.
К сожалению процедура (MySql) не умеет возвращать эту информацию в виде SELECT. То есть, нужно на клиенте писать код для вывода этой информации. А тем более если понадобиться вывести несколько строк. Тут вообще ж...
Неактивен