Интересная задача

Тема в разделе "SQL", создана пользователем AINS, 13 ноя 2008.

  1. AINS

    AINS Гость

    В общем придумал такую задачу, попробуйте решить и напишите ответ.

    Есть таблица, в которой указан id, user, date, sum, из таблицы надо выбрать тремя разными способами, какая з/п была у user скажем 15.02.2001? Число 15 может быть разным и его может не быть в таблице.

    id user dat 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
     
  2. etc

    etc Гость

    Ой насмешили .... :( тут на понт не берутся, тем более видно, что это 1 семестр 1-го курса, если не школа совсем.
    Свои задания решать надо самому! А тут можно показать как вы круто справились, и ждать похвалы.
     
  3. AINS

    AINS Гость

    Я попросил решить задачу а не высказываться по поводу семестров. Свою похвалу я получаю деньгами в день з/п, поэтому если не можете ответить на задачу то просьба не флудить по пустякам.
     
  4. etc

    etc Гость

    За такие "задачи" не зп надо давать, а брать мзду за ущерб, нанесенный предприятию, временем потраченным впустую. а не на реальную работу. :(
     
  5. AINS

    AINS Гость

    Обязательно передам ваши пожелания своему босу =) а пока я все жду ответ на задачу.
     
  6. etc

    etc Гость

    Вот вам еще одна интересная задача:
    Имеется таблица курсов валют
    Код (Text):
    CREATE TABLE КУРСЫ (
    ДАТА DATETIME,
    ВАЛЮТА CHAR(3),
    КУРС NUMERIC,
    PRIMARY KEY (ДАТА, ВАЛЮТА)
    );
    Данные:

    Дата Валюта Курс
    ------------------------
    01.09.04 USD 29.8
    02.09.04 EUR 35.4
    03.09.04 USD 29.7
    05.09.04 USD 29.6
    06.09.04 USD 29.8
    06.09.04 EUR 35.6
    ...

    Написать запрос, выдающий курс заданной валюты на заданную дату.
    Курс считается определенным:
    1) Если для данной валюты и даты имеется запись
    2) Имеется, по крайней мере, одна запись для заданной валюты, с датой не превосходящей заданной.

    Смогете?

    ЗЫ: Только стандарт SQL-92
     
  7. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Дальнейшие понты и флуд будут награждаться предупреждениями и банами...
     
  8. BurcevD

    BurcevD Гость

    select top 1 КУРС
    from КУРСЫ
    where Валюта='USD' and Дата<='01/09/08'
    ORDER BY Дата DESC
     
  9. etc

    etc Гость

    BurcevD Где в задаче вы нашли MS SQL Server?
     
  10. BurcevD

    BurcevD Гость

    select Курс
    from Курсы
    where Валюта='USD' and Дата=(Select MAX(Дата) from Курсы Where Дата<=<Нужная дата>)
     
  11. etc

    etc Гость

    BurcevD О это другое дело, пять баллов. :(

    Надо развить тему, для таких вот интересных задач.
     
  12. Aleksey

    Aleksey Гость

    Подзапрос
    (Select MAX(Дата) from Курсы Where Дата<=<Нужная дата>)
    вернет максимальную дату (меньшую или равную <Нужная дата>) не зависмо от кода валюты. Соответственно внешний запрос не сможет найти курс валюты, если он на эту дату не присутствует в таблице курсов ... :(

    Так что пока не 5 баллов.

    Надо указать валюту в подзапросе:
    select Курс
    from Курсы
    where Валюта='USD' and Дата=(Select MAX(Дата) from Курсы Where Дата<=<Нужная дата> AND Валюта='USD')
     
  13. etc

    etc Гость

    Aleksey Дада ... а я и проглядел, обрадовавшись увидев подзапрос с максом.
     
  14. BurcevD

    BurcevD Гость

    В принципе я это тоже проглядел =) но иммел ввиду, что для конкретной валюты
     
  15. Aleksey

    Aleksey Гость

    А заметить можно только если данные таблицы смотреть. Если бы для всех валют курсы бы выставлялись в определенный день, тогда бы работало, а так в данных "дырки". Хотя техническое задание предусматривает "дырки" :blink:
    P.S. Если честно, то я в свое время с пересчетом валют намучился, так что просто глаз "пристрелян" оказался :(
     
  16. etc

    etc Гость

    Ну так жизнь - она селяви ... как правило валюты берут автоматически из какогото источника, а там тоже люди ... т.е. на 100% уверенным быть нельзя.
     
Загрузка...
Похожие Темы - Интересная задача
  1. beloff
    Ответов:
    11
    Просмотров:
    2.409
  2. beloff
    Ответов:
    13
    Просмотров:
    2.741
  3. vbs
    Ответов:
    9
    Просмотров:
    4.029
  4. Янчик
    Ответов:
    0
    Просмотров:
    486
  5. TrishaRay
    Ответов:
    1
    Просмотров:
    782

Поделиться этой страницей