Re: simple yet complex join

Поиск
Список
Период
Сортировка
От Nigel J. Andrews
Тема Re: simple yet complex join
Дата
Msg-id Pine.LNX.4.21.0205170034130.601-100000@ponder.fairway2k.co.uk
обсуждение исходный текст
Ответ на simple yet complex join  (Vincent Stoessel <vincent@xaymaca.com>)
Список pgsql-general

On Thu, 16 May 2002, Vincent Stoessel wrote:

> Hello All,
> I've been reading the archives, the manual and  my sql books.
> lack of sleep is making what seems easy very hard to figure out
> right now.
>
> what kind of join do I have to do in order to combine 3 tables of
> similiar information. For example 3 months' worth of payments from
> customers:
>
>
> jan_pay
>
>
> tom 25
> ron 30
> jim 0
>
>
> feb_pay
>
> tom 25
> ron 20
> jim 10
>
>
> march_pay
>
> tom 25
> ron 30
> jim 5
> pat 40
>
>
>
> I want a result that looks like this :
>
>
> tom 25 25 25
> ron 30 20 30
> jim  0 10  5
> pat  0  0 40
>
>
>
> I've tried so many kinds of strage joins that I am ashamed to post them
> here. Can someone please light the candle?
> Thanks in advance.

A simple cross join?

SELECT
  jan.name AS name
  ,jan.pay AS jan_pay
  ,feb.pay AS feb_pay
  ,mar.pay AS mar_pay
FROM
  jan_pay jan, feb_pay feb, mar_pay mar
WHERE
  jan.name = feb.name
  AND
  feb.name = mar.name
;

Does that work?

I've got to say though, it looks an odd arrangement to have. I know you can't
get your person x month table output without some other coding but wouldn't a
more traditional database design have a single table something like:

table : pay
  columns :  name  pay  month

?

--
Nigel J. Andrews
Director

---
Logictree Systems Limited
Computer Consultants


В списке pgsql-general по дате отправления:

Предыдущее
От: Lev Lvovsky
Дата:
Сообщение: if !NULL ?
Следующее
От: Stephan Szabo
Дата:
Сообщение: Re: foreign key reference on array elements?