Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (7) [1] 2 3 ... Последняя » ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Тестовое задание - помогите выполнить, Прислали мне тестовое задание
aRpi  
 ۩     Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 14
Пользователь №: 36179
На форуме: 4 года, 9 дней
Карма:




Здравствуйте!

ЗАДАЧА:
Подскажите как привольно выполнить тестовое задание.
В общих словах хотябы!!!

ПРОБЛЕМА:
Прислали мне тестовое задание, Выполнил, Говорят, недостаточно хорошо.

ВОПРОС:
В чем может быть проблема?

ЗАДАНИЕ:
Есть таблица курсов валют за каждый день. Написать SQL запрос который выберет текущий курс для каждой валюты.

date currency rate
2012-01-01 USD 30,1
2012-01-01 EUR 40,1
2012-01-02 USD 29,7
2012-01-02 EUR 40,6
2012-01-03 USD 29,9
2012-01-03 EUR 40,3
2012-01-31 USD 30
2012-02-01 USD 29

Результатом запроса должен быть:

USD 29
EUR 40,3


ВОТ КАК Я ЕГО РЕШИЛ (прям так и написал в ответе):
select `currency`, `rate` FROM `test`.`data` WHERE `data` = '2012-01-02'

база: test
таблица: data
текущая дата: 2012-01-02

CREATE TABLE `data` (
`data` VARCHAR(10) NULL DEFAULT NULL,
`currency` VARCHAR(10) NULL DEFAULT NULL,
`rate` FLOAT NULL DEFAULT NULL
)
COLLATE='cp1251_general_ci'
ENGINE=MyISAM;


ЧТО НЕ ТАК?
Как такое тестовое задание решается?
Может надо как запрос оптимизировать?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5550
Пользователь №: 35718
На форуме: 4 года, 1 месяц, 29 дней
Карма: 170




1) указывая конкретную дату вы каждый день будете переписывать запрос?
2) в течение дня курс может меняться, и в этом случае ваш запрос сядет на попу ровно. (но это уже не к вам вопрос, а к тому кто его задавал, почему тип поля date когда должен быть datetime или timestamp)
ну и в конце концов, тестовое задание для вас, и если вы сами не видите своих ошибок, то значит тест не прошли.
___
о ужас там вообще varchar


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
aRpi  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 14
Пользователь №: 36179
На форуме: 4 года, 9 дней
Карма:




Ну что бы его пройти нужно понять почему не прошел...
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5550
Пользователь №: 35718
На форуме: 4 года, 1 месяц, 29 дней
Карма: 170




я вам написал 2 пункта, запрос нужно исправить с учетом этих пунктов, а точнее пункта номер 2, а пункт номер 1 получится сам по себе
просто забейте на тип поля и решайте задачу как будто там дата timestamp
хотя с varchar трудно будет найти максимум smile.gif
но это уже повторюсь вопрос к тому кто составлял тестовое задание, нельзя требовать правильного решения коли у самих рыло в пушку smile.gif


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
zelenin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 62
Пользователь №: 35843
На форуме: 4 года, 1 месяц, 17 дней
Карма: 1




1. вы опечатались при создании таблицы data->date (огрехи в виде неправильных типов ячеек и кодировки 1251 не учитываем)
2. Запрос должен выбирать не курс за определенную дату, "текущий курс для каждой валюты".
у вас даже в подсказке есть ответ:
2012-01-03 EUR 40,3
2012-02-01 USD 29
а ваш запрос что выдаст?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5550
Пользователь №: 35718
На форуме: 4 года, 1 месяц, 29 дней
Карма: 170




Цитата
2012-01-03 EUR 40,3

это из будущего?
по заданию текущая дата: 2012-01-02
скорее всего вы правы, опечатки присутствуют и их гораздо больше одной
посмотрел внимательнее даты и то что должно получиться, "занимательная математика" однако smile.gif
___
ТС вряд ли у вас задание в том виде в котором вы его представили, а если такое то, посылайте куда подальше вашего тестовика, пусть сам идет на курсы "кройки и шитья"
__
покажите ТЗ слово в слово, буква в букву, цифра в цифру


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5550
Пользователь №: 35718
На форуме: 4 года, 1 месяц, 29 дней
Карма: 170




Цитата
как привольно выполнить тестовое задание

ну это вообще бомба smile.gif


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
aRpi  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 14
Пользователь №: 36179
На форуме: 4 года, 9 дней
Карма:




USD 29
EUR 40,3

- чет сам не пойму как получить такой результат
"текущий курс для каждой валюты"
- это курс на сегодняшний день?

EUR 40,3 - это 2012-01-03
USD 29 - это 2012-02-01
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5550
Пользователь №: 35718
На форуме: 4 года, 1 месяц, 29 дней
Карма: 170




Цитата
"текущий курс для каждой валюты"
- это курс на сегодняшний день?

это курс на год, день, час, минуту и секунду

текущая дата: 2012-01-02 - это вы сами придумали? если да то

EUR 40,3 - это 2012-01-03
USD 29 - это 2012-02-01
совершенно правильный результат, для данной таблицы


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
aRpi  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 14
Пользователь №: 36179
На форуме: 4 года, 9 дней
Карма:




Цитата (Valick @ 10.01.2013 - 09:14)
ТС вряд ли у вас задание в том виде в котором вы его представили, а если такое то, посылайте куда подальше вашего тестовика, пусть сам идет на курсы "кройки и шитья"


user posted image
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5550
Пользователь №: 35718
На форуме: 4 года, 1 месяц, 29 дней
Карма: 170




значит текущую дату вы сами придумали, и более того таблицу в бд вы тоже сами придумали, и типы полей (неправильные) сами придумали
ну нельзя же так


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Hello  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 837
Пользователь №: 32378
На форуме: 4 года, 8 месяцев, 9 дней
Карма: 50




aRpi
У вас запрос выбирает только за 2012-01-02
Вам нужно было использовать NOW() вместо даты

Цитата (Valick @ 10.01.2013 - 07:50)
2) в течение дня курс может меняться

Курс устанавливает ЦБ один раз в день


--------------------
VPS от 5$, первые 2 месяца - бесплатно.
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5550
Пользователь №: 35718
На форуме: 4 года, 1 месяц, 29 дней
Карма: 170




Цитата
Курс устанавливает ЦБ один раз в день

точно? куда мир катится...
вот что по этому поводу думает Сбер Банк
Цитата
* Курсы обмена иностранных валют являются информативными и могут меняться в течение дня. Сведения о точных курсах обмена иностранных валют можно узнать по контактным телефонам структурных подразделений Сбербанка России.


Вам нужно было использовать NOW() вместо даты
мало чем поможет в данном случае
я бы попробовал GROUP BY по типу и MAX() по дате


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
aRpi  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 14
Пользователь №: 36179
На форуме: 4 года, 9 дней
Карма:




Цитата (aRpi @ 10.01.2013 - 09:48)
значит текущую дату вы сами придумали, и более того таблицу в бд вы тоже сами придумали, и типы полей (неправильные) сами придумалину нельзя же так


Вобщем да - этот было решением задания....
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5550
Пользователь №: 35718
На форуме: 4 года, 1 месяц, 29 дней
Карма: 170




Цитата
Вобщем да - этот было решением задания....

тогда вам повезло, дату хранить в varchar - это уже повод забыть про вас на неопределенный промежуток времени, если речь о приеме на работу.
___
подсказок в теме предостаточно, корректируйте таблицу и пишите запрос


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (7) [1] 2 3 ... Последняя » Ответ в темуСоздание новой темыСоздание опроса