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

Откуда:
Сообщений: 82
Вот написал такой запрос:
select Round(O.[КолШТ] / O.[ШТвКоробке], 0, 1) AS КолУП,
       Round(O.КолУП / O.[УпаковокВПаллете], 0, 1) AS КолМонопаллетов
from [asu_Отгрузки] as O
where O.[Дата] between '01.08.2009' and '07.08.2009'
Он естественно ругается:
автор
Invalid column name 'КолУП'.


Чтобы заработало нужно написать так:
select 
	   Round(O.[КолШТ] / O.[ШТвКоробке], 0, 1) AS КолУП,
       Round(Round(O.[КолШТ] / O.[ШТвКоробке], 0, 1) / O.[УпаковокВПаллете], 0, 1) AS КолМонопаллетов
from [asu_Отгрузки] as O
where O.[Дата] between '01.08.2009' and '07.08.2009'

НО! Почему разработчики MS не допускают первый вариант кода? Разве это не логично? ИМХО наоборот второй вариант запутанные и поле КолУП вычисляется 2 раза.
1 окт 09, 11:02    [7728459]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму в чем смысл селекта?  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Evangelion01
НО! Почему разработчики MS не допускают первый вариант кода? Разве это не логично?
Гы...
Ниахота им...
1 окт 09, 11:06    [7728495]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму в чем смысл селекта?  [new]
Glory
Member

Откуда:
Сообщений: 104760
Evangelion01


НО! Почему разработчики MS не допускают первый вариант кода? Разве это не логично? ИМХО наоборот второй вариант запутанные и поле КолУП вычисляется 2 раза.

Вы можете отправить свои соображения по этому поводу разработчикам MS
Или использовать вложенный запрос
1 окт 09, 11:06    [7728497]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму в чем смысл селекта?  [new]
Сергей Мишин
Member

Откуда:
Сообщений: 376
Evangelion01,
Для разработчиков Ваш подход видимо не логичен-)
1 окт 09, 11:06    [7728499]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму в чем смысл селекта?  [new]
Evangelion01
Member

Откуда:
Сообщений: 82
Правда чтоли? O_o

У меня есть только мысль: может они так сделали чтобы вычисления в разных потоках проводить...
1 окт 09, 11:07    [7728500]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму в чем смысл селекта?  [new]
Glory
Member

Откуда:
Сообщений: 104760
Evangelion01
Правда чтоли? O_o

У меня есть только мысль: может они так сделали чтобы вычисления в разных потоках проводить...

Имеенно. Выражения из select могут вычисляться одновременно и не обязательно в том порядке, как они перечислены в запросе
1 окт 09, 11:10    [7728513]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму в чем смысл селекта?  [new]
Влом регистрироваться
Guest
Evangelion01,

А нафиг разработчикам корячиться, если вы можете переписать вот так?


select 
    КолУП,
    Round(КолУП / УпаковокВПаллете, 0, 1) AS КолМонопаллетов
from 
(
select Round(O.[КолШТ] / O.[ШТвКоробке], 0, 1) AS КолУП, O.[УпаковокВПаллете]
from [asu_Отгрузки] as O
where O.[Дата] between '01.08.2009' and '07.08.2009'
) q

1 окт 09, 11:59    [7728823]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму в чем смысл селекта?  [new]
Сергей Борисович З
Member

Откуда:
Сообщений: 7
Evangelion01
Вот написал такой запрос:
НО! Почему разработчики MS не допускают первый вариант кода? Разве это не логично? ИМХО наоборот второй вариант запутанные и поле КолУП вычисляется 2 раза.


Это не логично
1 окт 09, 13:49    [7729640]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить