SELECT item,date WHERE date
问题描述:
这是我的sql脚本。我试图拉取所有60天内尚未开具发票的项目。它只返回一行。任何想法为什么?谢谢你的帮助!SELECT item,date WHERE date <sysdate - 60
SELECT oel.ordered_item Part_No,
MAX(rca.trx_date) AS "Last Invoice Date"
FROM oe_order_lines_all oel,
ra_customer_trx_all rca
WHERE rca.trx_date < trunc(sysdate)-60
GROUP BY oel.ordered_item
答
您应该添加条件这一行 '',这是inner join
这里,
SELECT oel.ordered_item Part_No,
MAX(rca.trx_date) AS "Last Invoice Date"
FROM oe_order_lines_all oel,
ra_customer_trx_all rca
WHERE rca.trx_date < trunc(sysdate)-60 --------shoud be a condition connects rca and oel
GROUP BY oel.ordered_item
答
我不知道为什么只返回一行。但是你缺少连接条件。如果使用适当的JOIN
语法,这将是显而易见的。
根据您的描述,您想要的逻辑更像是这样的:
SELECT oel.ordered_item as Part_No,
MAX(rca.trx_date) AS "Last Invoice Date"
FROM oe_order_lines_all oel LEFT JOIN
ra_customer_trx_all rca
ON oel.?? = rca.??
GROUP BY oel.ordered_item
HAVING MAX(rca.trx_date) < trunc(sysdate) - 60 OR MAX(rca.trx_date) IS NULL;
的??
是用于连接表的列。
*不要*的'FROM'子句中使用逗号。 *始终*使用正确,明确,现代的'JOIN'语法。 –
@GordonLinoff说什么,你的连接条件在哪里? – Anand
错过了rca和oel之间的内部连接条件 – LONG