【发布时间】:2014-02-06 18:08:23
【问题描述】:
我有一个包含客户投资交易的数据库。每个季度(四个月)有一个期初余额,一个期末余额,中间有 N 笔交易。
表格结构如下:
transaction_id (primary key)
investment_id (index, foreign key)
amount (decimal(11,2))
type (ENUM:'Opening','Closing','Transfer')
transaction_date (DATE)
我需要创建一个视图,该视图将为每个investment_id 检索“Opening”类型的第一笔交易、“Closing”类型的最后一笔交易以及特定日期之间的所有“Transfer”类型的交易范围。但是,除该范围内的端点外,不应包含“打开”或“关闭”类型的事务。例如:
SELECT * FROM view_transactions
WHERE transaction_date > '2000-01-01' AND transaction_date < '2006-06-01'
AND investment_id = 6578734
谢谢!
【问题讨论】:
-
好的,有什么问题?
-
使用该答案中的技术来获取每个组中的打开和关闭交易,并将它们与
UNION结合起来。 -
我可以在一个查询中完成这一切,但问题是我想将大部分查询存储在一个视图中,以便在应用程序查询中,所有必须指定的是投资 ID 和日期范围.我不确定这是否可行,因为视图内的查询将在外部查询的 WHERE 子句之前执行。