Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.20;
Скачать: CL | DM;

Вниз

SQL-запрос   Найти похожие ветки 

 
icu ©   (2002-05-28 17:01) [0]

Hiya,

есть два простых запроса.

select
sum(value)
from
income
group by person_id

...

select
sum(value)
from
outcome
group by person_id


их можно объединить так, что бы результат в одной таблице был виден?


 
Johnmen ©   (2002-05-28 17:06) [1]

- либо делать соединение (если возможно......)
- либо UNION


 
zx ©   (2002-05-28 17:11) [2]

Не забудь ALL <- очень вредная штука:(((


 
icu ©   (2002-05-28 17:12) [3]

Hiya,

неее. Я хочу видеть вот что:

person_id, взял, вернул.
1 10 5
2 100 300
...

и т.д.

То есть свод по задолженности как бы.


 
Johnmen ©   (2002-05-28 17:16) [4]

Повторяю :
- либо делать соединение (если возможно......)
(если income и outcome один-к-одному по person_id )



 
icu ©   (2002-05-28 17:19) [5]

Hiya,

грубо говоря. У меня есть таблица расход и таблица приход. В них есть поля "сумма", "человек". Надо состряпать один общий свод. Как делать объединения?

Может пример есть?


 
Delirium ©   (2002-05-28 17:20) [6]

select income.person_id,
sum(income.value) as inValue,
sum(outcome.value) as outValue
from income
join outcome on income.person_id=outcome.person_id
group by income.person_id


 
asafr ©   (2002-05-28 17:24) [7]

SELECT a.person_id, sum(a.value), sum(b.value)
FROM income a, outcome b
WHERE a.person_id=b.person_id
GROUP BY a.person_id


 
icu ©   (2002-05-28 17:31) [8]

Нормально,

а если число записей в таблицах разное?


 
Johnmen ©   (2002-05-28 17:33) [9]

>Delirium © (28.05.02 17:20)
>asafr © (28.05.02 17:24)

монопенисно... ;-)))))))))))))))))))))))))))))))))))

Только работать не будет корректно, если для income.person_id нет соответств. outcome.person_id и наоборот.... :)




 
icu ©   (2002-05-28 17:35) [10]

Вот и я про что. Неужели хранимую писать надо?


 
Johnmen ©   (2002-05-28 17:41) [11]

1. поппробуй внешнее соединение
2. в WHERE добавь соотв-ие условие


 
Delirium ©   (2002-05-28 18:00) [12]

Ну усложните малость, я-же для примера написал - постенько
select distinct income.person_id,
sum(income.value) as inValue,
sum(outcome.value) as outValue
from income
left join outcome on income.person_id=outcome.person_id
group by income.person_id
union all
select
outcome.person_id,
sum(income.value) as inValue,
sum(outcome.value) as outValue
from outcome
left join income on outcome.person_id=income.person_id
group by outcome.person_id


 
asafr ©   (2002-05-28 18:14) [13]

Ну, а использовать LEFT OUTER JOIN не пробовал?


 
icu ©   (2002-05-28 18:33) [14]

Нет, не выходит каменный цветок. =(


 
Delirium ©   (2002-05-28 19:02) [15]

> asafr

"Ну, а использовать LEFT OUTER JOIN не пробовал?" - в MSSQL left join и left outer join - это одно и то-же см.Books Online

> icu

А чего не устраивает ?


 
Delirium ©   (2002-05-28 19:09) [16]

> All

В принципе для такого рода объединений нужен full join, но так-как у нат тут агрегация то, понадобятся вложенные запросы, а union - это просто и быстро.


 
yozhik   (2002-05-28 19:20) [17]

CREATE VIEW SameName
AS
SELECT personid
FROM income
UNION ALL
SELECT personid
FROM outcome

----

select SameName.personid, Sum(income.income), Sum(outcome.outcome)
from SameName LEFT OUTER JOIN income on samename.presonid=income.personid LEFT OUTER JOIN outcome on samename.presonid=outcome.personid
group by samename.personid

вроде правильно написал, но смысл такой: 1 запрос на объединение, 2-связь 1-го запроса с тбл.


 
Delirium ©   (2002-05-28 19:30) [18]

> yozhik

Ты забыл distinct в представлении


 
yozhik   (2002-05-28 20:06) [19]

не надо там distinct, иначе не все personalid могут выбраться



Страницы: 1 вся ветка

Текущий архив: 2002.06.20;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.012 c
8-65176
Pete
2002-02-04 09:46
2002.06.20
Как более корректно удалять поверхности и интерфес DirectDraw


4-65277
evig
2002-04-19 20:36
2002.06.20
Народ помогите, плагин к експлореру типа яндекс бара как мона нав


1-65006
lipskiy
2002-06-08 03:32
2002.06.20
UBPFD - Бесплатная база готовых решений для Delphi


14-65208
Miwa
2002-04-19 15:55
2002.06.20
Глюк в Delphi.MAstak.ru Forum Client?


3-64926
kay
2002-05-27 06:06
2002.06.20
Index