刚来不久就问了大家好多问题,在大家的热心帮助下我一步一步解决了我的困难,作为一个新人,我在这里先谢谢大家了!!
现在我根据大家提供的帮助。。最后整理了一下。。但最后一个问题我还是解决不了。。希望大家来看看。
下面是我一开始发的一个查询回款率的句子: 
SELECT SUM(f_byje * f_yjf) AS 已收款, SUM(f_byje) AS 应收款, 
SUM(f_byje * f_yjf) / SUM(f_byje) AS 回款率
FROM yysj
WHERE (f_csly = '2006-1-24 20:18:00') ------这个时间表示06年1月份,是我用来检测查询结果的,只能得出1月的回款率

在大家的帮助下写成了以下用户定义函数
CREATE FUNCTION [dbo].[FUNCTIONNAME] (@dt DATETIME) 
RETURNS FLOAT AS 
BEGIN
DECLARE @回款率 FLOAT
SELECT @回款率=SUM(f_byje * f_yjf) / SUM(f_byje)
FROM yysj
WHERE (f_csly = @dt)
RETURN @回款率
END

语法检查正确,通过select dbo.functionname('2006-1-24 20:18:00')
语句来查询可以正确的返回回款率。

现在我的问题是我只是拿'2006-1-24 20:18:00'这个时间来做测试,这个时间是代表1月份的。。在f_csly这一列中每一个月的时间都是这样显示的。我现在要做的是只用在变量@dt输入“2006-1”
就能够等于'2006-1-24 20:18:00'来查询1月份的结果,不光是1月份,这只是一个例子,就是随便输入yy-mm就可以查到那一年那一月的结果,我应该怎么改这个用户定义函数?希望大家指教一下我。。给我改改看。谢谢了。[em3][em3]