尝试编写为记录生成MAX日期的内容,然后显示MAX日期小于今天的所有记录,但SQL查询会继续将DATETIME字段转换为VARCHAR,因此我无法使用maxdate < GetDate()
我尝试使用的代码是
'Max Day'=(SELECT MAX (del.original_stop) FROM del, line WHERE del.obj_id=T2.obj_id AND del.type=0 AND line.opt <> 1)
T2.obj_id在我的主FROM子句中的LEFT OUTER JOIN中定义。
有什么想法吗?
*更新w /完整查询
SELECT
T1.doc AS "Document",
T1.owner AS "Own",
T1.last_up AS "Last Updated (EST)",
"Dollars"=ISNULL((SELECT CAST(SUM(fund_amt) AS DECIMAL(16,2)) FROM c_fund T3 WHERE T2.obj_id=T3.obj_id),0),
"Max Day"=(SELECT MAX(del.orig_stop) FROM del, line WHERE del.obj_id=T2.obj_id AND del.del_type=0 AND line.opt <> 1)
FROM
dsk T1 LEFT OUTER JOIN doc_object T2 ON T1.obj_id=T2.obj_id
WHERE
T1.icon_id=4
AND
T1.last_up >= '2018/01/21' AND T1.last_up <= '2018/01/24'
ORDER BY
"Last Updated (EST)" desc
我知道FROM子句中的逗号,很快就会修复它们。
答案 0 :(得分:0)
使用as
分配别名:
select (SELECT MAX(del.original_stop)
FROM del JOIN
line
ON del.obj_id=T2.obj_id AND del.type=0 AND line.opt <> 1
) as max_day,
. . .
此外,从不在FROM
子句中使用逗号。 始终使用正确的JOIN
语法。
如果original_stop
是一个字符串,那么我的第一个建议是修复数据。您应该以原生格式存储日期和时间,而不是字符串。
如果由于某种原因无法修复数据模型,则可以使用convert()
。您需要peruse该功能可用的格式。