如何根据最近的日期属性获取两个字段?
Posted
技术标签:
【中文标题】如何根据最近的日期属性获取两个字段?【英文标题】:How to get two fields based off a most recent date attribute? 【发布时间】:2021-01-31 05:25:38 【问题描述】:我有两张桌子:
Billing 表和 Customer 表。 Billing 表和customer 表都有一个共同的Customer Number 属性。 计费表
我正在尝试创建一个视图,用于检索最近发票日期的客户代码和帐单编号。我在订购查询时遇到问题。
这是我目前所拥有的。
CREATE VIEW RECENT_ORDER
AS
SELECT
c.Customer_Num, b.Bill_Num
FROM CUSTOMER c
INNER JOIN BILLING b ON c.Customer_Num = b.Customer_Num
WHERE c.Fname='Jess' AND c.Lname='Hanks'
HAVING MAX(b.Bill_Date);
我也尝试将“HAVING”部分作为 WHERE 语句。
【问题讨论】:
HAVING MAX(b.Bill_Date);
是无效的 SQL 开头。 having
需要一个布尔表达式,但 max(bill_date)
返回一个 DATE 值
您使用的是哪种 DBMS 产品? “SQL”只是一种查询语言,而不是特定数据库产品的名称。请为您使用的数据库产品添加tag。 Why should I tag my DBMS
【参考方案1】:
这应该会得到你的答案:
CREATE VIEW RECENT_ORDER
AS
SELECT c.customer_num, b.bill_num
FROM customer c
JOIN billing b ON c.customer_num = b.customer_num
WHERE b.bill_date =
(SELECT MAX(bill_date) FROM billing WHERE customer_num = b.customer_num)
AND c.Fname='Jess' AND c.Lname='Hanks'
虽然通常我不希望创建一个将结果限制为只有一个客户的视图!?如果您打算获取任何/所有客户的最新结果,请删除最后一行 AND c.Fname ...
。请注意,如果客户在同一日期有不止一张发票,您可能会得到多个结果。
【讨论】:
以上是关于如何根据最近的日期属性获取两个字段?的主要内容,如果未能解决你的问题,请参考以下文章
mongo-> 如何从两个不同的集合中获取日期时间 desc 顺序的记录