Creer une fonction en SQL

Résolu
Theuma Messages postés 73 Date d'inscription   Statut Membre Dernière intervention   -  
blux Messages postés 27145 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
Voila ce que j'aimerais faire ...
J'ai une grosse requette SQL qui fait pas loin de 15 lignes et je doit réaliser cette fonction 36 fois .... Je vouderais crée en VB une fonction de type

Fonction(Lettre) et il me change dans mon SQL la variable ... C'est possible ???

Voici le code en question ...
[code]SELECT Sum(A) AS AA, FK_Prefab
FROM (SELECT Count(*) AS A, FK_Prefab FROM LignePrefab WHERE Left(Repere1,1) like 'A' AND FK_Prefab in (Select FK_Prefab From LignePrefab) Group BY FK_Prefab
UNION ALL
SELECT Count(*) AS A, FK_Prefab FROM LignePrefab WHERE Mid(Repere1,2,1) LIKE 'A' AND FK_Prefab in (Select FK_Prefab From LignePrefab) Group BY FK_Prefab
Union ALL
SELECT Count(*) AS A, FK_Prefab FROM LignePrefab WHERE Mid(Repere1,3,1) LIKE 'A' AND FK_Prefab in (Select FK_Prefab From LignePrefab) Group BY FK_Prefab
Union ALL
SELECT Count(*) AS A, FK_Prefab FROM LignePrefab WHERE Mid(Repere1,4,1) LIKE 'A' AND FK_Prefab in (Select FK_Prefab From LignePrefab) Group BY FK_Prefab
Union ALL
SELECT Count(*) AS A, FK_Prefab FROM LignePrefab WHERE Mid(Repere1,5,1) LIKE 'A' AND FK_Prefab in (Select FK_Prefab From LignePrefab) Group BY FK_Prefab
Union ALL
SELECT Count(*) AS A, FK_Prefab FROM LignePrefab WHERE Mid(Repere1,6,1) LIKE 'A' AND FK_Prefab in (Select FK_Prefab From LignePrefab) Group BY FK_Prefab
Union ALL
SELECT Count(*) AS A, FK_Prefab FROM LignePrefab WHERE Mid(Repere1,7,1) LIKE 'A' AND FK_Prefab in (Select FK_Prefab From LignePrefab) Group BY FK_Prefab
Union ALL
SELECT Count(*) AS A, FK_Prefab FROM LignePrefab WHERE Left(Repere2,1) LIKE 'A' AND FK_Prefab in (Select FK_Prefab From LignePrefab) Group BY FK_Prefab
UNION ALL
SELECT Count(*) AS A, FK_Prefab FROM LignePrefab WHERE Mid(Repere2,2,1) LIKE 'A' AND FK_Prefab in (Select FK_Prefab From LignePrefab) Group BY FK_Prefab
Union ALL
SELECT Count(*) AS A, FK_Prefab FROM LignePrefab WHERE Mid(Repere2,3,1) LIKE 'A' AND FK_Prefab in (Select FK_Prefab From LignePrefab) Group BY FK_Prefab
Union ALL
SELECT Count(*) AS A, FK_Prefab FROM LignePrefab WHERE Mid(Repere2,4,1) LIKE 'A' AND FK_Prefab in (Select FK_Prefab From LignePrefab) Group BY FK_Prefab
Union ALL
SELECT Count(*) AS A, FK_Prefab FROM LignePrefab WHERE Mid(Repere2,5,1) LIKE 'A' AND FK_Prefab in (Select FK_Prefab From LignePrefab) Group BY FK_Prefab
Union ALL
SELECT Count(*) AS A, FK_Prefab FROM LignePrefab WHERE Mid(Repere2,6,1) LIKE 'A' AND FK_Prefab in (Select FK_Prefab From LignePrefab) Group BY FK_Prefab
Union ALL
SELECT Count(*) AS A, FK_Prefab FROM LignePrefab WHERE Mid(Repere2,7,1) LIKE 'A' AND FK_Prefab in (Select FK_Prefab From LignePrefab) Group BY FK_Prefab
)
GROUP BY FK_Prefab;
/code

La lettre A est ma variable que j'aimerais changer ....

A voir également:

1 réponse

blux Messages postés 27145 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
Salut,

une fonction ne fera pas ce genre de changement ou elle ne va pas t'avancer car tu devras l'appeler 36 fois...

C'est une requête dans du code ou en 'stand-alone' ?
Ce sera à exécuter plusieurs fois sur la base ou périodiquement ? Pourquoi 36 ?

A+ Blux
 "Les cons, ça ose tout. 
C'est même à ça qu'on les reconnait"
0