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

Откуда: Белый свет
Сообщений: 20
Доброго времени суток! =)

есть таблица WT2, в которой имеются данные о днях, каждый тип дня которой - Uniqueidentifier, я создал запрос, который генерирует выборку этих дней уже в виде конкретных числовых значений из таблицы-справочника VisitList2. Обычно, чтобы подсчитать количество значений столбцов достаточно использовать функцию SUM(СТОЛБЕЦ). Однако, в моём случае, происходит подсчет из генерируемых столбов, из за этого функция SUM работать отказывается. Кто что посоветует? Есть ли альтернативы?

declare @yr tinyint
declare @sid nvarchar(36)


set @yr = 2012
set @sid = '932F5636-E96D-40C2-8A52-798353DCC164'

select worker_name,

(select VisitList2.presente_sign from VisitList2 where visit_id = day01) as d01
(select VisitList2.presente_sign from VisitList2 where visit_id = day02) as d02
(select VisitList2.presente_sign from VisitList2 where visit_id = day03) as d03
....

И тд...
....
from dbo.WT2
left outer join Stage on dbo.stage.stage_id = dbo.WT2.stage_id
left outer join Workers on dbo.WT.worker_id = dbo.Stage.worker_id
where WorkTable2.stage_id = @sid and stdl = 1 and year = @yr
2 май 13, 00:17    [14253483]     Ответить | Цитировать Сообщить модератору
 Re: Как произвести сумму столбца, если его значения взяты из другой таблицы?  [new]
OKTaH
Member

Откуда: Белый свет
Сообщений: 20
то есть не выходит сделать SUM(d01), SUM(d02) и тд...
2 май 13, 00:27    [14253516]     Ответить | Цитировать Сообщить модератору
 Re: Как произвести сумму столбца, если его значения взяты из другой таблицы?  [new]
qwerty112
Guest
OKTaH
Доброго времени суток! =)

есть таблица WT2, в которой имеются данные о днях, каждый тип дня которой - Uniqueidentifier, я создал запрос, который генерирует выборку этих дней уже в виде конкретных числовых значений из таблицы-справочника VisitList2. Обычно, чтобы подсчитать количество значений столбцов достаточно использовать функцию SUM(СТОЛБЕЦ). Однако, в моём случае, происходит подсчет из генерируемых столбов, из за этого функция SUM работать отказывается. Кто что посоветует? Есть ли альтернативы?
declare @yr tinyint
declare @sid nvarchar(36)

set @yr = 2012
set @sid = '932F5636-E96D-40C2-8A52-798353DCC164'

select worker_name, 

  (select VisitList2.presente_sign from VisitList2 where visit_id = day01) as d01
  (select VisitList2.presente_sign from VisitList2 where visit_id = day02) as d02
  (select VisitList2.presente_sign from VisitList2 where visit_id = day03) as d03
....

И тд...
....
from dbo.WT2
left outer join Stage on dbo.stage.stage_id = dbo.WT2.stage_id
left outer join Workers on dbo.WT.worker_id = dbo.Stage.worker_id
where WorkTable2.stage_id = @sid and stdl = 1 and year = @yr


>> Обычно, чтобы подсчитать количество значений столбцов достаточно использовать функцию SUM(СТОЛБЕЦ).

Обычно, чтобы подсчитать количество значений столбцов достаточно использовать функцию COUNT

>> left outer join

left join в запросе, с учётом where - "для мебели"

--

а эти подзапросы в запросе
  (select VisitList2.presente_sign from VisitList2 where visit_id = day01) as d01
и т.д

они связанны с основным запросом ? т.е. - они коррелированные ?

раз уж вы не можете по рекомендациям задать вопрос, пишите хотя бы имена таблиц / алиасы у полей в запросе ... ну как тут понять, что к чему относится ??
2 май 13, 00:47    [14253564]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить