День добрый помогите пожалуйста советом или решением , суть проблемы такая есть формулы в Excel
Код
=A1&"/"&B1&"-"&C1&"/"&G1&"/"&L1
- просто собирает из разных строк значения и формирует уникальный номер на основе этих значений.(344/Барс-2014/2/А) Чтобы в определенную ячейку таблицы "стекались" дынные из 5 ячеек и формировали уникальный номер.
и формула
Код
=ЕСЛИ((W1)>0;V1-W1-X1;0)
- выполняет условие если W1 больше нуля, то происходит вычисление, иначе 0.
Вопрос, как эти две формулы реализовать с помощью SQL? Суть всего проекта в том что нужно таблицу Excel перенести в БД SQL, с этим проблем нет. Но в Excel есть формулы и как их запрограммировать на в SQL глухой лес
Может есть какое то средство переноса формул из Excel в SQL -запросы? [moder]Формулы оформляйте тегами (кнопка fx)
День добрый помогите пожалуйста советом или решением , суть проблемы такая есть формулы в Excel
Код
=A1&"/"&B1&"-"&C1&"/"&G1&"/"&L1
- просто собирает из разных строк значения и формирует уникальный номер на основе этих значений.(344/Барс-2014/2/А) Чтобы в определенную ячейку таблицы "стекались" дынные из 5 ячеек и формировали уникальный номер.
и формула
Код
=ЕСЛИ((W1)>0;V1-W1-X1;0)
- выполняет условие если W1 больше нуля, то происходит вычисление, иначе 0.
Вопрос, как эти две формулы реализовать с помощью SQL? Суть всего проекта в том что нужно таблицу Excel перенести в БД SQL, с этим проблем нет. Но в Excel есть формулы и как их запрограммировать на в SQL глухой лес
Может есть какое то средство переноса формул из Excel в SQL -запросы? [moder]Формулы оформляйте тегами (кнопка fx)drinklab
Сообщение отредактировал drinklab - Четверг, 23.04.2015, 10:43
У SQL немного другая логика работы, чем у Excel. SQL работает с базами данных, которые являются хранилищем для чисел, дат и текстовых строк. Для обеспечения максимальной скорости получения данных, в таких хранилищах никаких формул быть не должно. Все расчёты должны проходить либо при вставке значений в таблицу, либо при выгрузке значений в отдельных столбцах. В Вашем случае Вам достаточно перенести логику расчётов на формирование нужных столбцов.
1). Уникальный определитель строки. В SQL он по умолчанию присваивается каждой строке. Можно задать его явно и тогда он будет формироваться автоматически. Это будет некоторое число. Если же Вам нужен именно Ваш определитель - загуглите/найдите конкретный оператор конкатенации для Вашей версии SQL.
2). Проверка условия. Язык запросов SQL позволяет проверять условия. Тут Вам тоже нужно обратиться к документации именно Вашего SQL и выбрать подходящий вариант. Скорее всего это будет какая-либо форма операторов IF, CASE или SWITCH.
drinklab, здравствуйте.
У SQL немного другая логика работы, чем у Excel. SQL работает с базами данных, которые являются хранилищем для чисел, дат и текстовых строк. Для обеспечения максимальной скорости получения данных, в таких хранилищах никаких формул быть не должно. Все расчёты должны проходить либо при вставке значений в таблицу, либо при выгрузке значений в отдельных столбцах. В Вашем случае Вам достаточно перенести логику расчётов на формирование нужных столбцов.
1). Уникальный определитель строки. В SQL он по умолчанию присваивается каждой строке. Можно задать его явно и тогда он будет формироваться автоматически. Это будет некоторое число. Если же Вам нужен именно Ваш определитель - загуглите/найдите конкретный оператор конкатенации для Вашей версии SQL.
2). Проверка условия. Язык запросов SQL позволяет проверять условия. Тут Вам тоже нужно обратиться к документации именно Вашего SQL и выбрать подходящий вариант. Скорее всего это будет какая-либо форма операторов IF, CASE или SWITCH.Rioran
Роман, Москва, voronov_rv@mail.ru Яндекс-Деньги: 41001312674279
вот я и думаю, по сути в БД SQL хранятся статические таблицы, и как передавать в эту же таблица результат вычислений не понятно.
Суть в том еще что пользователь будет работать с этой БД через вьюху и будет заполнять поля 1,2,3..10 и ему в этой же вьюхе нужно отобразить ячейку 11 с вычислением значений ячеек аля (1+2+3) я не знаю возможно ли реализовать такое с помощью SQL или нужно прикручивать допы? типо php и др...
Цитата
В Вашем случае Вам достаточно перенести логику расчётов на формирование нужных столбцов.
подскажите на каком этапе ее нужно реализовывать? на этапе постройки запроса?
тут смысл в том что пользователь будет работать с ячейками БД через вьюху(пока стандартную для работы с БД SQL), тоесть выборки ни какие не будут происходить... пользователю нужно добавлять ручками данные в несколько ячеек, а другие ячейки должны автоматически формироваться в ту же таблицу БД с помощью определенной логики.. мой опыт в SQL не сильно богатый, уровень запросов, интересует вообще такое реально сделать с помощью стандартных средств SQL синтаксиса... или нужно типо писать свою вьюху в которую будет уже тянуться значения из БД и уже на уровне толстого клиента производить расчеты для нужных ячеек и передавать их обратно в БД?
вот я и думаю, по сути в БД SQL хранятся статические таблицы, и как передавать в эту же таблица результат вычислений не понятно.
Суть в том еще что пользователь будет работать с этой БД через вьюху и будет заполнять поля 1,2,3..10 и ему в этой же вьюхе нужно отобразить ячейку 11 с вычислением значений ячеек аля (1+2+3) я не знаю возможно ли реализовать такое с помощью SQL или нужно прикручивать допы? типо php и др...
Цитата
В Вашем случае Вам достаточно перенести логику расчётов на формирование нужных столбцов.
подскажите на каком этапе ее нужно реализовывать? на этапе постройки запроса?
тут смысл в том что пользователь будет работать с ячейками БД через вьюху(пока стандартную для работы с БД SQL), тоесть выборки ни какие не будут происходить... пользователю нужно добавлять ручками данные в несколько ячеек, а другие ячейки должны автоматически формироваться в ту же таблицу БД с помощью определенной логики.. мой опыт в SQL не сильно богатый, уровень запросов, интересует вообще такое реально сделать с помощью стандартных средств SQL синтаксиса... или нужно типо писать свою вьюху в которую будет уже тянуться значения из БД и уже на уровне толстого клиента производить расчеты для нужных ячеек и передавать их обратно в БД?drinklab
Сообщение отредактировал drinklab - Четверг, 23.04.2015, 10:47
понял, спасибо за ответы. Помогите пожалуйста написать SQL запросы:
первый - допустим есть стока A1,A2,A3(типы данных в ячейках SMALLINT UNSIGNED,ENUM,VARCHAR).... как написать запрос чтобы он брал значения ячеек A1(теплый),A2(добрый),A3(слон), A4(и) и выводил их в одну строку аля result="A1/A4/A2/A3"("теплый и добрый слон").
второй запрос - есть ячейки A1(2),A2(15),A3(32)(тип данных DECIMAL (16, 4) UNSIGNED) тут будут только числа ,необходим запрос который будет вычитать из A3 значение ячейки A2 и A1 например 32-2-15 = выводит 15. Спасибо заранее за ответы и посылы в нужном направлении [moder]Это другой вопрос, который нужно задать вот здесь http://www.excelworld.ru/forum/4
понял, спасибо за ответы. Помогите пожалуйста написать SQL запросы:
первый - допустим есть стока A1,A2,A3(типы данных в ячейках SMALLINT UNSIGNED,ENUM,VARCHAR).... как написать запрос чтобы он брал значения ячеек A1(теплый),A2(добрый),A3(слон), A4(и) и выводил их в одну строку аля result="A1/A4/A2/A3"("теплый и добрый слон").
второй запрос - есть ячейки A1(2),A2(15),A3(32)(тип данных DECIMAL (16, 4) UNSIGNED) тут будут только числа ,необходим запрос который будет вычитать из A3 значение ячейки A2 и A1 например 32-2-15 = выводит 15. Спасибо заранее за ответы и посылы в нужном направлении [moder]Это другой вопрос, который нужно задать вот здесь http://www.excelworld.ru/forum/4drinklab