|
|
|
Помогите решить задачу.
|
|||
|---|---|---|---|
|
#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 |
|
||
|
Помогите решить задачу.
|
|||
|---|---|---|---|
|
#18+
AINS Число 15 может быть разным Это как понимать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2008, 10:28 |
|
||
|
Помогите решить задачу.
|
|||
|---|---|---|---|
|
#18+
AINSтремя разными способами а что не пятью? Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2008, 10:33 |
|
||
|
Помогите решить задачу.
|
|||
|---|---|---|---|
|
#18+
Число 15 это день в месяце, выборка по числу может быть разной, 5-го числа или 20-го, факт в том что этого числа в таблице нет как видно там только первый числа каждого месяца. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2008, 10:37 |
|
||
|
Помогите решить задачу.
|
|||
|---|---|---|---|
|
#18+
AINS, 1. Если это реальная задача Мой скромный опыт подсказывает что необходимо делать паразитную таблицу Год куда внести 365 дней и потом к ней уже привязываться. Если вопрос про зарплату, то потом пойдут вопросы про праздничные дни, среднее количество рабочих дней и т д. Набором функций для работы с датой можно, но замахаешся и велика вероятность ошибки. Лучше в лоб. Тем более что заполнение таблицы Год автоматизируется. Когда привяжишься к таблиц год - все запросы достаточно элементарные. 2. Если это тест или курсовая работа. Кувыркаться с SQL функциями для работы с датой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2008, 12:41 |
|
||
|
Помогите решить задачу.
|
|||
|---|---|---|---|
|
#18+
Т.е. тебе нужно найти значение с максимальной датой <= заданной. Классическая задача! Встречается почти в каждом проекте! На стандарте решается тупо: в подзапросе находим максимальную дату, во внешнем запросе получаем искомое значение по нужным критериям и дате = найденной в подзапросе. Вообще, если критериев много, запрос большой, медленный, то дважды его переписывать - не самое лучшее решение, но стандарт другого не дает (на сколько я знаю). В различных СУБД иногда встречаются более интересные решения, но это - специфика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2008, 12:51 |
|
||
|
Помогите решить задачу.
|
|||
|---|---|---|---|
|
#18+
А, да! Забыл подколоть: а что за таблица-то? Если, например, "таблица приказов о назначении ставки з/п с такого-то числа", то мое решение правильное. Если это срез значений на какие-то моменты, то, наверно, нужно на значения в точках натягивать сплайн и по нему вычислять нужное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2008, 12:54 |
|
||
|
Помогите решить задачу.
|
|||
|---|---|---|---|
|
#18+
KOT MATPOCKuH нужно на значения в точках натягивать сплайн и по нему вычислять нужное. Может обойтись линейной интерполяцией? :) Надо всё-таки услышать правильный вопрос. Я не понял суть задачи. Или она очень простая или неоправданно сложная. В реальной системе про зарплату и начисления, скорее всего последний вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2008, 13:03 |
|
||
|
Помогите решить задачу.
|
|||
|---|---|---|---|
|
#18+
albert tМожет обойтись линейной интерполяцией? :) это 5-ть :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2008, 13:19 |
|
||
|
Помогите решить задачу.
|
|||
|---|---|---|---|
|
#18+
albert t, То есть если вопрос звучит из реальной бухгалтерии "Сколько денег рабочий заработал до 20-го числа в ноябре прошлого года, когда был выходным День рыбака, а субботу перенсли на пятницу" это один вопрос а если просто найти между какими датами находится дата которую нужно узнать, и выбрать зарпалту за этот месяц, тогда это одна строка как Naf и написал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2008, 13:25 |
|
||
|
Помогите решить задачу.
|
|||
|---|---|---|---|
|
#18+
albert talbert t, То есть если вопрос звучит из реальной бухгалтерии "Сколько денег рабочий заработал до 20-го числа в ноябре прошлого года, когда был выходным День рыбака, а субботу перенсли на пятницу" это один вопрос а если просто найти между какими датами находится дата которую нужно узнать, и выбрать зарпалту за этот месяц, тогда это одна строка как Naf и написал. По условию задчи надо найти какая зарплата была у usera 15 числа, то есть идет повышение к примеру не каждого месяца как описано в таблице а скажем раз в квартал, тогда запрос будет такой, какая зарплата была у человека 15 февраля? А в таблице прописана только дата повыешния ставки и сумма, ну соответственно фамилия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2008, 14:57 |
|
||
|
Помогите решить задачу.
|
|||
|---|---|---|---|
|
#18+
Дак и в чем проблема? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2008, 17:54 |
|
||
|
Помогите решить задачу.
|
|||
|---|---|---|---|
|
#18+
AINS, прямо сейчас здесь обсуждаем именно такую(если абстрагироваться от деталей) задачу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2008, 00:32 |
|
||
|
Помогите решить задачу.
|
|||
|---|---|---|---|
|
#18+
AINS, Это просто. Юзай запрос Nuf. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2008, 10:43 |
|
||
|
Помогите решить задачу.
|
|||
|---|---|---|---|
|
#18+
А я знаю четыре способа! А может быть и больше :( Сумма на дату - это мелочи. Вот когда надо на дату подсчитать разницу между расчетными и фактическим комунальнными платежами, с учетом того, что в предыдущие периоды действовали разные тарифы, льготы, базы расчета, сроки оплаты и множество другой муры, то вот это действительно забавно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2008, 18:25 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=35653655&tid=1543569]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
218ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
75ms |
get tp. blocked users: |
2ms |
| others: | 270ms |
| total: | 617ms |

| 0 / 0 |
