我想我可能会反思这一点,但是我在尝试通过Oracle数据库中的多个连接以及几个where子句找到最大日期时遇到问题。我发现了很多简单的最大查询的例子,但没有特别的例子。查询工作正常,如果我添加一行来查找特定日期之上的所有记录(只返回少数结果)。但是,我想自动从帐单表中获取所有记录的最新日期。这个数据库有一个额外的表格,其中存储了实际帐单数量,因此增加了另一个层次。Oracle SQL - 通过多个连接获取Max Date
SELECT p.purchase_id, p.account_id, b.bill_date, bp.current_amount
FROM Purchases p
JOIN Bill_Purchases bp ON p.purchase_id = bp.purchase_id
JOIN Bills b ON bp.bill_id = b.bill_id
--NEED TO GET MOST RECENT DATE FROM BILL TABLE FOR EACH BILL
WHERE p.type != 'CASH'
AND bp.amount > '100.00'
AND p.status = 'Approved'
AND p.purchase_id IN (... list of purchases ...);
我已经尝试在他们的最大功能做子查询,但我没有任何运气。每个查询返回与原始查询相同数量的记录。我将如何重新安排这个查询来检索所有必要的列和where子句,同时还将此限制为仅最近一次收费的购买行为?
发布一些样本数据+预期结果总是有帮助的。 – sstan
'从yourtable'选择max(datefield)? –
你有没有尝试类似于:SELECT p.purchase_id,p.account_id,MAX(b.bill_date),bp.current_amount ... ... body ... ... GROUP BY SELECT p.purchase_id,p.account_id, bp.current_amount –