我想写一个SQL Server 2008存储过程,该过程在一个记录中返回:
回顾以前的帖子我已尝试过select#1 UNION ALL select#2
,但这会返回两列结果行(无论AS),而不是一列四列。 (我是noob,因此不能完全确定这是一个无法通过网络服务器或网页解析的问题 - 我的编码员说过一行更可取 - 所以这方面的建议也很棒)
临时表和2012年的新功能似乎也有可能,但有一种我更容易丢失的方法吗?
答案 0 :(得分:0)
您尚未提供表格定义,但......
SELECT
MIN(StockPrice) MinYr,
MAX(StockPrice) MaxYr,
MIN(
CASE
WHEN MONTH(ADate) = MONTH(GETDATE())
THEN StockPrice
ELSE NULL
END
) MinMth,
MAX(
CASE
WHEN MONTH(ADate) = MONTH(GETDATE())
THEN StockPrice
ELSE NULL
END
) MaxMth
FROM Table
WHERE YEAR(ADate) = Year(GETDATE())
这不一定是性能最好的SQL(因为列周围有函数)。这是最简单的代码。