Ik heb onderstaande SQL Query:
In de 2e SELECT query vraag ik de variabele @doctypes op uit het SELECT statement daarboven. Echter wordt deze eerste SELECT query en daarmee dus die variabele maar 1 keer gevuld.
Voor ieder record is @doctypes dus hetzelfde.
Hoe kan ik van de eerste SELECT query een SQL functie maken die ik aan kan roepen vanuit de 2e SELECT query en daarmee een ID mee kan geven die in de functie wordt gebruikt?
Heb de MS SQL2005 handleiding op functies nageslagen maar kom er niet uit

Heb zoiets geprobeerd:
SQL:
1
2
3
4
5
6
7
8
9
10
| DECLARE @doctypes varchar(100) SELECT @doctypes = COALESCE (@doctypes + ', ', '') + CAST(doctype_name AS varchar(25)) FROM lsidoctype INNER JOIN doctypes ON lsidoctype.lsidoctype_doctypeid = doctypes.doctype_id WHERE lsidoctype_docid = 1009 SELECT lsidoc_id, lsidoc_title, lsidoc_authorpublisher, @doctypes AS lsidoc_doctypes FROM lsidocs WHERE (lsidoc_title LIKE '%human%') ORDER BY lsidoc_title, lsidoc_submitted DESC |
In de 2e SELECT query vraag ik de variabele @doctypes op uit het SELECT statement daarboven. Echter wordt deze eerste SELECT query en daarmee dus die variabele maar 1 keer gevuld.
Voor ieder record is @doctypes dus hetzelfde.
Hoe kan ik van de eerste SELECT query een SQL functie maken die ik aan kan roepen vanuit de 2e SELECT query en daarmee een ID mee kan geven die in de functie wordt gebruikt?
Heb de MS SQL2005 handleiding op functies nageslagen maar kom er niet uit
Heb zoiets geprobeerd:
SQL:
1
2
3
4
5
6
7
8
9
10
| CREATE FUNCTION lsidoctype.tester(@docuid int) RETURN (DECLARE @doctypes varchar(100) SELECT @doctypes = COALESCE (@doctypes + ', ', '') + CAST(doctype_name AS varchar(25)) FROM lsidoctype INNER JOIN doctypes ON lsidoctype.lsidoctype_doctypeid = doctypes.doctype_id WHERE lsidoctype_docid = @docuid); SELECT lsidoc_id, lsidoc_title, lsidoc_authorpublisher, tester(lsidoc_id) AS lsidoc_doctypes FROM lsidocs WHERE (lsidoc_title LIKE '%human%') AND (lsidoc_title LIKE '%rights%') ORDER BY lsidoc_title, lsidoc_submitted DESC |
[ Voor 23% gewijzigd door Urk op 20-06-2007 16:45 ]