views:

2783

answers:

4

I have a user defined function in SQL called getBuisnessDays it takes @startdate and @enddate and returns the number of business days between the two dates. How can I call that function within my select?

Here's what I'd like to do..

SELECT getBusinessDays(a.opendate,a.closedate) 
FROM account a
WHERE ...
+5  A: 

Yes, you can do almost that: SELECT dbo.GetBusinessDays(a.opendate,a.closedate) as BusinessDays FROM account a WHERE...

Assuming that you are using MS SQL

damn - beat me to it - you need the owner prefix
DJ
+1  A: 

Use a scalar-valued UDF, not a table-value one, then you can use it in a SELECT as you want.

recursive
A: 

If it's a table-value function (returns a table set) you simply join it as a Table

this function generates one column table with all the values from passed comma-separated list SELECT * FROM dbo.udf_generate_inlist_to_table('1,2,3,4')

jerryhung
+1  A: 

Just remember that UDFs can often kill query performance depending on how the optimizer reacts to them. They often mean processing row by row rather than set-based. For your situation you might be better off using a calendar table and selecting against that when needed.

Tom H.
thanks for the comment. I'll consider it.
madcolor