我有一个第三方应用程序可以调用MS-SQL标量函数从表中返回一些摘要信息。我能够使用表值函数返回汇总值,但应用程序不会使用表值函数,所以我有点卡住了。这是表格中的一个样本:
trackingNumber,projTaskAward,expenditureType,amount
1122,12345-67-89,Supplies,100
1122,12345-67-89,Supplies,150
1122,12345-67-89,Supplies,250
1122,12345-67-89,Misc,50
1122,12345-67-89,Misc,100
1122,98765-43-21,General,200
1122,98765-43-21,会议,500
1122,98765-43-21,Misc,300
1122,98765-43-21,杂项,100
1122,98765-43-21,Misc,100
我想通过projTaskAward和&amp ;;总结这些金额。 expenditureType,基于trackingNumber。以下是我正在寻找的输出:
项目/任务/奖励: 12345-67-89
支出类型:耗材
总计: 500
项目/任务/奖励: 12345-67-89
支出类型:其他
总计: 150
项目/任务/奖励: 98765-43-21
支出类型:一般
总计: 200
项目/任务/奖励: 98765-43-21
支出类型:会议
总计: 500
项目/任务/奖励: 98765-43-21
支出类型:其他
总计: 500
我很感激任何人都可以帮助我指导正确的方向。
答案 0 :(得分:0)
MS-SQL标量函数返回
RETURNS子句http://technet.microsoft.com/en-us/library/ms177499(v=sql.105).aspx
中定义的单个数据值
您的应用程序可以解析字符串中的数据吗?您可以将结果作为varchar()返回并让您的应用程序使用它吗?
IF OBJECT_ID (N'dbo.ufnGetSummary', N'FN') IS NOT NULL
DROP FUNCTION ufnGetSummary;
GO
CREATE FUNCTION dbo.ufnGetSummary(@TrackingNumber int)
RETURNS varchar(100)
AS
BEGIN
DECLARE @ret varchar(100);
--
-- your Select here
--
RETURN @ret;
END;
GO