Привет, мне нужно создать столбец во время выполнения (RANK зарплаты), который зависит от значения столбца зарплаты из одной таблицы (COLLAGE), и эта зарплата связана с таблица сотрудников. Можете ли вы предложить, как его создать. Столбец RANK будет содержать значение, основанное на зарплате, если зарплата выше, чем RANK равна 1 ... в порядке возрастания.создание столбца во время выполнения во время выполнения sql-запроса
ответ
Это даст вам идентификатор вашего сотрудника, его зарплату и столбец рангов.
SELECT
*,
@currentRank := @currentRank + 1 AS rank_of_salary
FROM (
SELECT
c.employee_id,
e.salary
FROM
collage c
INNER JOIN employee e ON c.employee_id = e.employee_id
) t, (SELECT @currentRank := 0) r
ORDER BY salary
(SELECT @currentRank := 0)
инициализирует переменную так, что вам не нужно отдельное SET
заявление.
Для каждой строки @currentRank
переменная увеличивается и сохраняется в столбце rank_of_salary
. Я считаю, что это скорее эквивалент row_number
. Правильный порядок этого ранга поддерживается путем сортировки вывода с предложением ORDER BY salary
.
Будет ли текущий ранг автоматически увеличиваться? –
можно ли использовать с использованием case statement ?? –
Добавлено некоторое объяснение. Он будет автоматически увеличен для каждой строки. Нет, это невозможно сделать с помощью оператора CASE, так как для этого вам понадобится предыдущее значение для его сравнения. Вы также можете расширить этот запрос, используя http://stackoverflow.com/questions/11303532/simulate-lag-function-in-mysql –
- 1. Создание столбца во время выполнения
- 2. Создание JComboBoxes во время выполнения
- 3. Создание объектов во время выполнения
- 4. Создание DataGridView во время выполнения
- 5. Создание объектов во время выполнения
- 6. Создание БД во время выполнения
- 7. Создание таблицы во время выполнения
- 8. Создание объектов во время выполнения
- 9. Прерывание во время исполнения во время выполнения
- 10. Дженерики во время выполнения
- 11. Списка во время выполнения
- 12. Кнопка во время выполнения
- 13. подталкивания во время выполнения
- 14. Ошибка во время выполнения
- 15. java.lang.ArrayIndexOutOfBoundsException во время выполнения
- 16. Нарезка во время выполнения
- 17. Изменения во время выполнения
- 18. UnsatisfiedLinkError во время выполнения
- 19. GridView во время выполнения
- 20. класса во время выполнения
- 21. массива во время выполнения
- 22. Настройки во время выполнения
- 23. java.lang.ClassCastException во время выполнения
- 24. NoClassDefFoundError во время выполнения
- 25. Исключение во время выполнения
- 26. AccessViolationException во время выполнения
- 27. checkbox во время выполнения
- 28. Память во время выполнения
- 29. RedirectToAction во время выполнения
- 30. UnityEditor.Undo во время выполнения
Добро пожаловать в StackOverflow! Приложите полную структуру таблиц, необходимых для выполнения этой задачи, включая внешние ключи для соответствия данным. Также определите, какую СУБД вы используете. Ответы будут отличаться от вашего двигателя. Это Oracle или MySQL? –
Я думаю, что вы хотите, чтобы оператор SQL включал ваши таблицы «COLLAGE» и «Employee» и оценивал «зарплату» для каждого сотрудника. Не столько создать столбец во время выполнения, сколько написать инструкцию SQL, которая вернет необходимый вам набор записей. Кроме того, вам нужно указать, какую СУБД вы используете. Oracle и MySQL представляют собой две разные базы данных. – JNevill
Если вам нужно создавать столбцы в таблице во время выполнения, это должен быть большой флаг в отношении вашего дизайна. – OldProgrammer