【发布时间】:2018-07-03 14:57:07
【问题描述】:
尝试编写一些生成记录的 MAX 日期的内容,然后显示所有 MAX 日期小于今天的记录,但 SQL 查询不断将 DATETIME 字段转换为 VARCHAR,因此我无法使用 @987654322 @
我尝试使用的代码是
'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 中定义。
有什么想法吗?
*使用完整查询更新
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 子句中的逗号,很快就会解决这些问题。
【问题讨论】:
-
当您添加 SQL 标签时,会弹出一个大框,建议您也为正在使用的特定 DBMS 添加标签,因为它们之间的功能和语法各不相同。你为什么忽略这个建议?现在我们必须了解您使用的是什么 DBMS?它们之间的功能和支持各不相同,并且知道您正在使用哪一个是相关的。请为 DBMS 添加一个标签,这样我们就不会浪费您的时间或我们的回答,只是为了发现它不适用于您的特定数据库。 废话,直到您得到答案这样做。
-
尝试使用CONVERT()函数w3schools.com/sql/func_sqlserver_convert.asp
标签: sql sql-server-2008 datetime max varchar