SQL查询>系统日期
我正在尝试编写一个查询,以查找最大过期日期,但我注意到,当我这样做时,如果我有一个过期日期,比如2016年12月30日,我没有得到任何结果,对于同一部分,我还有一个过期日期,即2099年1月1日,这是默认日期,如果下面没有填写任何内容,我的查询如何重写过期日期查询以获取正确的日期SQL查询>系统日期,sql,sysdate,Sql,Sysdate,我正在尝试编写一个查询,以查找最大过期日期,但我注意到,当我这样做时,如果我有一个过期日期,比如2016年12月30日,我没有得到任何结果,对于同一部分,我还有一个过期日期,即2099年1月1日,这是默认日期,如果下面没有填写任何内容,我的查询如何重写过期日期查询以获取正确的日期 SELECT Part, price, effective_date, expiration_date FROM a.Table WHERE Part IN ('&Part') AND PRI
SELECT
Part,
price,
effective_date,
expiration_date
FROM a.Table
WHERE Part IN ('&Part')
AND PRICE IN ('somewere')
AND expiration_date IN (SELECT
MAX(expiration_date)
FROM table
WHERE expiration_date > SYSDATE
AND part IN ('&Part)
AND PRICE IN (Somewere))
AND to_date(effective_date) IN (SELECT
MAX(EFFECTIVE_DATE) FROM b.table
WHERE expiration_date > SYSDATE
AND Part IN ('&Part)
AND price IN (somewere)
AND EFFECTIVE_DATE < SYSDATE + 1)
我会用排号
以下是查询:
SELECT
part
,price
,effective_date
,expieration_date
FROM (
SELECT
part
,price
,effective_date
,expieration_date
,ROW_NUMBER() OVER (PARTITION BY part ORDER BY expieration_date DESC) AS "row"
FROM @tbl
WHERE effective_date < SYSDATE + 1
) tbl
WHERE "row" = 1
每个表中的样本数据以及期望的结果都会有所帮助。添加更多信息,包括样本和预期输出!对不起,我忘了拔出内部连接,我不需要它。样本数据如下:苹果7.95 1-Dec-16 30-Dec-16苹果7.95 1-Nov-16 30-Nov-16苹果7.95 30-Dec-16 01-Jan-2099我正在寻找它给我这个结果苹果7.95 1-Dec-16 30-Dec-16我是“getting From关键字not found”应位于第_NUM行我正在oracle sql Developer中运行查询Orry,oracle sql Developer在声明列名时需要它。已更新查询。只要将@tbl替换为您的表,其他一切都应该可以正常工作。
DECLARE @tbl TABLE (
part NVARCHAR(MAX)
,price FLOAT
,effective_date DATETIME2(3)
,expieration_date DATETIME2(3)
)
INSERT @tbl (part, PRICE, EFFECTIVE_DATE, EXPIERATION_DATE)
VALUES ('Apples',7.95,'2016-12-01','2016-12-30')
,('Apples',7.95,'2016-11-01','2016-11-30')
,('Apples',7.95,'2016-12-30','2099-01-01')