我有一个以前创建的SQL视图,其中包含我期待得到的数据。它有Case时,它使我难以运行MAX(日期)...我试图运行基于它的视图,它只是保持超时...我可以创建一个新的视图与数据我需要但我仍然需要数据操纵,必须在一些案例中,当我们离开......SQL查看MAX(日期)疯狂
这种观点目前生产这种信息
THDATE ComponentItemNumber Issued Quantity
12/23/2013 12:00:00 AM TTMS-12.7-9 19
12/23/2013 12:00:00 AM TTMS-4.8-9 8.34
12/23/2013 12:00:00 AM TTMS-4.8-9 10.66
12/23/2013 12:00:00 AM 44476-3112 2
12/23/2013 12:00:00 AM M80-0130005 NULL
我想要做的就是简单地获取最大日期为每项目# 这里是当前视图...有人可以帮我创建一个SQL语句来做到这一点吗?请...我正在使用SQL 2000
SELECT THDATE
, CASE WHEN dbo.udf_GetHistoryChar(THBODY + THBODY2 + THBODY3 + THBODY4,
7) = 'C' THEN NULL
ELSE dbo.udf_GetHistoryVarchar(THBODY + THBODY2 + THBODY3
+ THBODY4, 10)
END AS ComponentItemNumber
, CASE WHEN dbo.udf_GetHistoryChar(THBODY + THBODY2 + THBODY3 + THBODY4,
3) = 'C' THEN NULL
WHEN dbo.udf_GetHistoryChar(THBODY + THBODY2 + THBODY3 + THBODY4,
2) = 'D' THEN NULL
ELSE dbo.udf_GetHistoryFloat(THBODY + THBODY2 + THBODY3 + THBODY4,
17)
END AS IssuedQuantity
FROM dbo.Mfg_TRANHIS AS T1
WHERE (THTRID = 'PICK')
AND (THFLAG = '1')
AND (dbo.udf_GetHistoryChar(THBODY + THBODY2 + THBODY3 + THBODY4, 1) = 'C')
AND (NOT ((CASE WHEN dbo.udf_GetHistoryChar(THBODY + THBODY2
+ THBODY3 + THBODY4, 7) = 'C'
THEN NULL
ELSE dbo.udf_GetHistoryVarchar(THBODY + THBODY2
+ THBODY3 + THBODY4,
10)
END) LIKE 'CU%')
)
AND (NOT ((CASE WHEN dbo.udf_GetHistoryChar(THBODY + THBODY2
+ THBODY3 + THBODY4, 2) LIKE '[MP]'
THEN dbo.udf_GetHistoryVarchar(THBODY + THBODY2
+ THBODY3 + THBODY4,
4)
WHEN dbo.udf_GetHistoryChar(THBODY + THBODY2
+ THBODY3 + THBODY4, 3) = 'C'
THEN dbo.udf_GetHistoryVarchar(THBODY + THBODY2
+ THBODY3 + THBODY4,
5)
WHEN dbo.udf_GetHistoryChar(THBODY + THBODY2
+ THBODY3 + THBODY4, 2) = 'D'
THEN dbo.udf_GetHistoryVarchar(THBODY + THBODY2
+ THBODY3 + THBODY4,
5)
WHEN dbo.udf_GetHistoryChar(THBODY + THBODY2
+ THBODY3 + THBODY4, 7) = 'C'
THEN dbo.udf_GetHistoryVarchar(THBODY + THBODY2
+ THBODY3 + THBODY4,
4)
ELSE dbo.udf_GetHistoryVarchar(THBODY + THBODY2
+ THBODY3 + THBODY4,
4)
END) LIKE 'VM%')
)
请格式化您的问题,并将其减少到非常严重的问题。 –
所有这些udf's,CASE语句,而不是?在尝试保释水之前,您可能应该修补漏洞(即修复您的数据模型)。 –
标量值函数在SQL Server中声名狼借。这不太好,但使用表值函数可以极大地提高性能。 – 2014-01-06 17:20:40