【发布时间】:2021-05-21 20:08:14
【问题描述】:
我对 SQL 很陌生,所以我为琐碎的事情道歉。
我们公司有售票系统,有两张桌子。
在一张桌子上,它会记录票证何时关闭。交易发布时的其他跟踪。
我想创建一个查询,返回所有处于关闭状态但交易在票被关闭后发布的票。
我有类似的东西:
SELECT a.proposal AS "Work Order"
, a.status_code AS "Status"
, a.status_date AS "Closed Date"
, b.tranx_date AS "Transaction Date"
FROM table1 a
OUTER
JOIN table2 b
WHERE b.tranx_date > a.status_date
然后,理想情况下,它会返回类似...
Work Order: Status: Closed Date: Transaction Date:
0001 CLOSED 01/01/2021 01/02/2021
0002 CLOSED 01/01/2021 01/02/2021
我知道我的查询/语法不正确,我现在才学习 SQL 3 天。 任何帮助将不胜感激。
【问题讨论】:
-
@Strawberry 对不起,我因为没有提供足够的信息而受到批评,所以我想我过头了。
-
这很不寻常,没有“票号”或其他需要在两个表中匹配的标识符...将所有行的 tranx_date 与另一个表中所有行的 status_date 匹配,似乎会有半笛卡尔积,匹配不同票号的行。我也猜测我们可能还想要一个类似于
AND a.status_code = 'CLOSED'的条件,但这只是一个猜测 -
@spencer7593 啊,确实。我最终添加了一个
WHERE a.status_code = 'Closed'并返回了已关闭的票证。工单是票号,但我什至没想到他们也需要加入。