我做了一个编辑。我想知道什么是最好的方式存储和查看条目时,我希望有一个客户组在列以及。它仍然是possible存储像你建议的值,使一个简单的视图?
这里编辑的问题:我希望在oracle中有一个统计表。该表应如下所示:编辑
| 年|客户||Jan| Feb|......这是什么?|Dec|
| --|--|--|--|--|--|--|
| 2023 |Customer1|第一条| 1 | 1 |......这是什么?| 1 |
| 2023 |Customer1| Article2| 1 | 1 |......这是什么?| 1 |
| 2023 |Customer1|总和| 2 | 2 |......这是什么?| 2 |
| | | | | | | |
| 2023 |客户2|第一条| 1 | 1 |......这是什么?| 1 |
| 2023 |客户2| Article2| 1 | 1 |......这是什么?| 1 |
| 2023 |客户2|总和| 2 | 2 |......这是什么?| 2 |
| 2023 |客户3|第一条| 1 | 1 |......这是什么?| 1 |
| 2023 |客户3| Article2| 1 | 1 |......这是什么?| 1 |
| 2023 |客户3|总和| 2 | 2 |......这是什么?| 2 |
| 2023 |客户群|第一条| 1 | 1 |......这是什么?| 1 |
| 2023 |客户群|Article2| 1 | 1 |......这是什么?| 1 |
| 2023 |客户群|总和| 2 | 2 |......这是什么?| 2 |
客户组可以是例如客户3、客户4和客户5的组。我想知道存放这种table的最好方法是什么。我的意思是,是创建一个像上面这样的表更好,还是可以通过视图来实现目标?
但是,在表中存储值的最佳方式是什么?视图应该如何创建?或者有没有更好的方法来处理这样的事情?
2条答案
按热度按时间yruzcnhs1#
在我看来,table不应该是这样的。你会以表格的形式呈现给用户,因为它更容易阅读,但是-要将数据存储到表中,我建议这样做:
我不知道值实际上代表什么(
article
应该是另一个表的外键吗?什么是amount
?),也不知道应该对其应用哪些约束(例如,2854年是否有效?金额可以是负数吗?)。每个月/年/客户可以有多少行?视图将是
这可能需要根据实际数据和需求进行修改,但-很快-这就是我要做的。
q35jwt9p2#
您可以在
ROLLUP
中使用条件聚合:其中,对于样本数据:
然后视图输出:
| 年|用户名|类型|Jan| Feb| Mar|
| --|--|--|--|--|--|
| 2023 |Customer1|第一条| 1 | 1 | 1 |
| 2023 |Customer1| Article2| 1 | 1 | 1 |
| 2023 |Customer1|总和| 2 | 2 | 2 |
| 2023 |客户2|第一条| 1 | 1 | 1 |
| 2023 |客户2| Article2| 1 | 0 | 1 |
| 2023 |客户2|总和| 2 | 1 | 2 |
fiddle