Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

как сложить три столбца по общему идентефикатору SQL

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Прочее] >> как сложить три столбца по общему идентефикатору SQL
Имя
Сообщение << Старые топики   Новые топики >>
как сложить три столбца по общему идентефикатору SQL - 2007-09-04 08:22:28.013333   
Translyator

Сообщений: 359
Оценки: 0
Присоединился: 2007-08-17 12:32:54.773333
MS sql 2005 нужно сложить три столбца из разных таблиц по общему полю
у всех трёх таблиц есть общиё столбец JOB_ID
примерно так (т.1 job_id , amount) у всех таблиц такие столбцы
Post #: 1
RE: как сложить три столбца по общему идентефикатору SQL - 2007-09-04 10:25:43.500000   
Pupkin-Zade

Сообщений: 9398
Оценки: 1489
Присоединился: 2004-03-10 13:54:16
схематично
Seelct a + b + c from a, b, c where job_id1=job_id2 and job_id2=job_id3
Post #: 2
RE: как сложить три столбца по общему идентефикатору SQL - 2007-09-04 11:12:32.773333   
Translyator

Сообщений: 359
Оценки: 0
Присоединился: 2007-08-17 12:32:54.773333
quote:

ORIGINAL: Pupkin-Zade

схематично
Seelct a +&nbsp;b&nbsp;+ c&nbsp;from a, b, c where job_id1=job_id2 and job_id2=job_id3

 
это я уже пробовал результат нетот
табл.1 есть поля с job_id (35, 35, 43, 43)  они разные
в т.2 job_id (35, 35, 29, 29) и т.3 job_id (35, 35)
а в результате у меня получается
8 полей с непонятными значениями
Post #: 3
RE: как сложить три столбца по общему идентефикатору SQL - 2007-09-04 14:34:37.596666   
necrostaz

Сообщений: 172
Оценки: 0
Присоединился: 2007-02-27 15:54:59.460000
quote:

а в результате у меня получается 8 полей с непонятными значениями


почему же непонятными, все ясно у тебя в трех таблицах есть по 2 записи с job_id=35, сервак не может определить какие конкретно записи ему нужно складывать, поэтому он вычисляет все возможные суммы, число которых 8, если тебе нужны конкретные суммы по конкретным записям тебе необходимо ввести дополнительный идентификатор записи, а если тебе нужна общая сумма, то сначала суммируй записи с одинаковым job_id в каждой таблице а затем суммируй результаты по job_id, сделать это можно в 2005 например так:
declare @temp table(job_id int, summ int) insert into @temp (job_id,summ) (select distinct job_id, sum(a) from a group by job_id) insert into @temp (job_id,summ) (select distinct job_id, sum(b) from b group by job_id) insert into @temp (job_id,summ) (select distinct job_id, sum(c) from c group by job_id) select distinct job_id, sum(summ) from @temp group by job_id
Post #: 4
RE: как сложить три столбца по общему идентефикатору SQL - 2007-09-04 14:39:28.573333   
necrostaz

Сообщений: 172
Оценки: 0
Присоединился: 2007-02-27 15:54:59.460000
а вообще по-моему есть косяк с самой базой, amount имхо нужно хранить в одной таблице
Post #: 5
RE: как сложить три столбца по общему идентефикатору SQL - 2007-09-05 09:01:17.333333   
Translyator

Сообщений: 359
Оценки: 0
Присоединился: 2007-08-17 12:32:54.773333
job_id&nbsp;&nbsp; amount t.#1&nbsp; amount t.#2&nbsp; amount t.#3&nbsp;&nbsp; total
           (35)   100       (35)    20      null              120
            null               (40)  300    (40)  150         450
            null               (40)  120    (40)  80          200
 
где () это job_id в каждой таблице и относительно одного джоба
может быть несколько значений  amount
Post #: 6
Страниц:  [1]
Все форумы >> [Прочее] >> как сложить три столбца по общему идентефикатору SQL







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.