Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Вопрос по запросу  [new]
mazda
Member

Откуда:
Сообщений: 6
Добрый день!

Есть некое недопонимание со сторонним разработчиком и хочеться прояснить ситуацию

тиблицы не реальные, только для примера

Есть таблица неких свойств, которые могут повторятся от года к году. Ключ в таблице property_id + year

create table properties (property_id (int), year(vacrhar(4), name(varchar10))

данные к примеру такие
1 2009 'A'
1 2010 'A'
2 2009 'B'
2 2010 'B'
2 2011 'B'
3 2010 'C'
3 2011 'C'
4 2011 'D'

Есть таблица неких таких же свойств но со старыми данными. Ключ в таблице такой же property_id + year

create table properties_old (property_id (int), year(vacrhar(4), name(varchar10))

данные к примеру такие
1 2009 'A_OLD'
2 2009 'B_OLD'
3 2009 'С_OLD'
4 2009 'D_OLD'


Если есть задание дословное:
Вывести код, год и наименование свойств из таблицы properties и заменить наименование свойст на наименование из таблицы properties_old если property_id существует в этой таблице.

как будет выглядеть запрос?

спасибо
9 июл 11, 10:50    [10949864]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по запросу  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
mazda
как будет выглядеть запрос?


update t1
set t1.val = t2.val
from t1 inner join t2 
on t1.id = t2.id
9 июл 11, 10:57    [10949868]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по запросу  [new]
mazda
Member

Откуда:
Сообщений: 6
Т.е. Вас не смутило то, что за разные года должны быть разные наименования?
В таком случае все наименования перезатруться старыми, что с т.з. конечного результата неверно
9 июл 11, 11:01    [10949874]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по запросу  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
select t1.property_id, t1.year, isnull(t2.name, t1.name) name
from properties t1 left join properties_old t2
on t1.property_id = t2.property_id and t1.year = t2.year
9 июл 11, 11:15    [10949899]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по запросу  [new]
mazda
Member

Откуда:
Сообщений: 6
Спасибо!

Просто вопрос стоит принципиально

С точки зрения логики второй запрос выглядит правильно, плюс он выдает правильный результат.
Разработчики сделали по первому варианту и не хотят признать это ошибкой и просят оформить как доп.работы, поскольку в задании было явно указано искать property_id и про год не было упоминаний.

С нашей точки зрения как минимум должен был возникнуть вопрос про то, что данные перезатрутся в таком случае. Но предупреждения с их стороны не было.

Мало того, изначально в первой таблице не было годов, отличных от 2009 и property_id не повторялось и, поскольку структура БД для нас закрыта (официально), то никто и не мог предположить что property_id в следующих годах будет повторяться и разработчики не пердупредил об этом.

Мы считаем что они не совсем правы в данном случае и должны признать ошибку как минимум.

Хотелось бы услышать ваше мнение по этому вопросу!

спасибо большое
9 июл 11, 11:28    [10949919]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по запросу  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
mazda
Хотелось бы услышать ваше мнение по этому вопросу!

сами виноваты...я так же как и ваши разработчики, сделал все строго по вашему заданию.

что попросили - то вам и сделали, а начни они импровизировать про год, так вы скажете, что этого требования не было в ТЗ и заставите бесплатно все исправлять
9 июл 11, 11:40    [10949941]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по запросу  [new]
mazda
Member

Откуда:
Сообщений: 6
Согласен, что надо все более детально прописывать.
Но, работаем мы с компанией консалтинговой, т.е. они сами консультанты и разработчики
Мы выдвигаем требования общие, они пишут ТЗ для себя, мы его потом согласовываем.
В данном случае как мы могли догадаться без помощи консалтинга что property_id может от года в год повторяться?
9 июл 11, 11:45    [10949951]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по запросу  [new]
mazda
Member

Откуда:
Сообщений: 6
mazda
В данном случае как мы могли догадаться без помощи консалтинга что property_id может от года в год повторяться?


А что мы могли еще попросить если данные на начало запуска в обоих системах были одинаковые и не предполагалось что property_id будет повторяться от года к году в новой системе, а не будет уникальным?
Т.е. пока не начался 2010 год, все работало корректно-)
Повторюсь, что мы не имеем доступа к структуре БД и без помощи консалтинга не могли предположить что property_id будет повторяться от года к году.
9 июл 11, 12:03    [10949967]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по запросу  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
mazda
как мы могли догадаться без помощи консалтинга что property_id может от года в год повторяться?


вы тут кого пытаетесь убедить в своей правоте!? лично мне и всем, кто тут пишет пофффик...убеждайте свой консалтинг, что они не правы...но, мне кажется, заколебетесь...

ИМХО
9 июл 11, 12:08    [10949970]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по запросу  [new]
mazda
Member

Откуда:
Сообщений: 6
Никого естественно я не убеждаю-) Понятное дело что всем пофиг.

Просто на ситуацию можно взглянуть с обеих сторон, т.е. с одной стороны "сами виноваты" потому что написано так и все тут, а с другой стороны консультанты то должны консультировать и отвечать за результат, и если они промолчали по этому поводу, то можно считать что тоже условно виноваты.

Вот это и хотелось понять
9 июл 11, 12:14    [10949980]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить