是否可以使MS-SQL标量函数执行此操作?

时间:2014-06-13 15:26:16

标签: sql sql-server function

我有一个第三方应用程序可以调用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

我很感激任何人都可以帮助我指导正确的方向。

1 个答案:

答案 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