【问题标题】:Create View with Two columns in Two Tables在两个表中创建具有两列的视图
【发布时间】:2012-01-22 21:16:05
【问题描述】:

有两个表:salesexpensessales 有两列:sale_dateprice,费用表有两列:dateamount。还有一个view 有天 年。 (Create View with 365 days)

我想在此视图中添加另外两列:salesexpenses,数据在 salesexpenses 表。

示例:

SalesTable

sale_date   price

05-DEC-11   1,500
05-DEC-11     500
11-DEC-11     800
17-DEC-11   2,400

ExpensesTable

date        amount

06-DEC-11      300
11-DEC-11      100
11-DEC-11      400
15-DEC-11    1,100

View 应该创建如下

date        sales   expenses

01-JAN-11    null    null
02-JAN-11    null    null
03-JAN-11    null    null
04-JAN-11    null    null
05-JAN-11    null    null

...


05-DEC-11   2,000    null
06-DEC-11    null     300
07-DEC-11    null    null
08-DEC-11    null    null
09-DEC-11    null    null
10-DEC-11    null    null
11-DEC-11     800     500
12-DEC-11    null    null
13-DEC-11    null    null
14-DEC-11    null    null
15-DEC-11    null   1,100
16-DEC-11    null    null
17-DEC-11   2,400    null

...


28-DEC-11   null     null
29-DEC-11   null     null
30-DEC-11   null     null
31-DEC-11   null     null

salesexpenses 视图中的列由 priceamount 的总和创建,saleexpenses 表中的列由 date 在这两个表中分组。

我该怎么做?

【问题讨论】:

  • 我不确定,但您在此处发布之前是否尝试过自己创建该视图?
  • @Lion 我试图这样做。但无法用按日期分组的列总和填充视图

标签: oracle plsql oracle10g


【解决方案1】:

这应该能让你到达那里:

SELECT the_day, price, amount
  FROM year_days LEFT JOIN (SELECT sale_date, SUM(price) price
                              FROM sales
                             GROUP BY sale_date) ON the_day = sale_date
                 LEFT JOIN (SELECT expense_date, SUM(expenses) amount
                              FROM expenses
                             GROUP BY expense_date) ON the_day = expense_date
 ORDER BY the_day;

THE_DAY        PRICE     AMOUNT
--------- ---------- ----------
...
01-DEC-11
02-DEC-11
03-DEC-11
04-DEC-11
05-DEC-11       2000
06-DEC-11                   300
07-DEC-11
08-DEC-11
09-DEC-11
10-DEC-11
11-DEC-11        800        500
12-DEC-11
13-DEC-11
14-DEC-11
15-DEC-11                  1100
16-DEC-11
17-DEC-11       2400
18-DEC-11
...

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-28
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多