|
|
|
Помогите решить задачу.
|
|||
|---|---|---|---|
|
#18+
Я начинающий программист, вот придумал задачу, может быть кто-то сможет решить? В общем задача: Есть таблица, в которой указан id, user, date, sum, из таблицы надо выбрать тремя разными способами, какая з/п(sum) была у user скажем 15.02.2001? Число 15 может быть разным и его может не быть в таблице. id user date sum 1 Пупкин 01.01.2001 1000 2 Пупкин 01.02.2001 1500 3 Пупкин 01.03.2001 2000 4 Пупкин 01.04.2001 2500 5 Пупкин 01.05.2001 3000 6 пупкин 01.06.2001 3500 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2008, 10:23:25 |
|
||
|
Помогите решить задачу.
|
|||
|---|---|---|---|
|
#18+
AINS Число 15 может быть разным Это как понимать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2008, 10:28:48 |
|
||
|
Помогите решить задачу.
|
|||
|---|---|---|---|
|
#18+
AINSтремя разными способами а что не пятью? Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2008, 10:33:51 |
|
||
|
Помогите решить задачу.
|
|||
|---|---|---|---|
|
#18+
Число 15 это день в месяце, выборка по числу может быть разной, 5-го числа или 20-го, факт в том что этого числа в таблице нет как видно там только первый числа каждого месяца. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2008, 10:37:13 |
|
||
|
Помогите решить задачу.
|
|||
|---|---|---|---|
|
#18+
AINS, 1. Если это реальная задача Мой скромный опыт подсказывает что необходимо делать паразитную таблицу Год куда внести 365 дней и потом к ней уже привязываться. Если вопрос про зарплату, то потом пойдут вопросы про праздничные дни, среднее количество рабочих дней и т д. Набором функций для работы с датой можно, но замахаешся и велика вероятность ошибки. Лучше в лоб. Тем более что заполнение таблицы Год автоматизируется. Когда привяжишься к таблиц год - все запросы достаточно элементарные. 2. Если это тест или курсовая работа. Кувыркаться с SQL функциями для работы с датой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2008, 12:41:55 |
|
||
|
Помогите решить задачу.
|
|||
|---|---|---|---|
|
#18+
Т.е. тебе нужно найти значение с максимальной датой <= заданной. Классическая задача! Встречается почти в каждом проекте! На стандарте решается тупо: в подзапросе находим максимальную дату, во внешнем запросе получаем искомое значение по нужным критериям и дате = найденной в подзапросе. Вообще, если критериев много, запрос большой, медленный, то дважды его переписывать - не самое лучшее решение, но стандарт другого не дает (на сколько я знаю). В различных СУБД иногда встречаются более интересные решения, но это - специфика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2008, 12:51:27 |
|
||
|
Помогите решить задачу.
|
|||
|---|---|---|---|
|
#18+
А, да! Забыл подколоть: а что за таблица-то? Если, например, "таблица приказов о назначении ставки з/п с такого-то числа", то мое решение правильное. Если это срез значений на какие-то моменты, то, наверно, нужно на значения в точках натягивать сплайн и по нему вычислять нужное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2008, 12:54:26 |
|
||
|
Помогите решить задачу.
|
|||
|---|---|---|---|
|
#18+
KOT MATPOCKuH нужно на значения в точках натягивать сплайн и по нему вычислять нужное. Может обойтись линейной интерполяцией? :) Надо всё-таки услышать правильный вопрос. Я не понял суть задачи. Или она очень простая или неоправданно сложная. В реальной системе про зарплату и начисления, скорее всего последний вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2008, 13:03:47 |
|
||
|
Помогите решить задачу.
|
|||
|---|---|---|---|
|
#18+
albert tМожет обойтись линейной интерполяцией? :) это 5-ть :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2008, 13:19:12 |
|
||
|
Помогите решить задачу.
|
|||
|---|---|---|---|
|
#18+
albert t, То есть если вопрос звучит из реальной бухгалтерии "Сколько денег рабочий заработал до 20-го числа в ноябре прошлого года, когда был выходным День рыбака, а субботу перенсли на пятницу" это один вопрос а если просто найти между какими датами находится дата которую нужно узнать, и выбрать зарпалту за этот месяц, тогда это одна строка как Naf и написал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2008, 13:25:50 |
|
||
|
Помогите решить задачу.
|
|||
|---|---|---|---|
|
#18+
albert talbert t, То есть если вопрос звучит из реальной бухгалтерии "Сколько денег рабочий заработал до 20-го числа в ноябре прошлого года, когда был выходным День рыбака, а субботу перенсли на пятницу" это один вопрос а если просто найти между какими датами находится дата которую нужно узнать, и выбрать зарпалту за этот месяц, тогда это одна строка как Naf и написал. По условию задчи надо найти какая зарплата была у usera 15 числа, то есть идет повышение к примеру не каждого месяца как описано в таблице а скажем раз в квартал, тогда запрос будет такой, какая зарплата была у человека 15 февраля? А в таблице прописана только дата повыешния ставки и сумма, ну соответственно фамилия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2008, 14:57:02 |
|
||
|
Помогите решить задачу.
|
|||
|---|---|---|---|
|
#18+
Дак и в чем проблема? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2008, 17:54:30 |
|
||
|
Помогите решить задачу.
|
|||
|---|---|---|---|
|
#18+
AINS, прямо сейчас здесь обсуждаем именно такую(если абстрагироваться от деталей) задачу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2008, 00:32:30 |
|
||
|
Помогите решить задачу.
|
|||
|---|---|---|---|
|
#18+
AINS, Это просто. Юзай запрос Nuf. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2008, 10:43:49 |
|
||
|
Помогите решить задачу.
|
|||
|---|---|---|---|
|
#18+
А я знаю четыре способа! А может быть и больше :( Сумма на дату - это мелочи. Вот когда надо на дату подсчитать разницу между расчетными и фактическим комунальнными платежами, с учетом того, что в предыдущие периоды действовали разные тарифы, льготы, базы расчета, сроки оплаты и множество другой муры, то вот это действительно забавно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2008, 18:25:39 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=35651410&tid=1543569]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
174ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 450ms |

| 0 / 0 |
