Je suis relativement novice en matière de programmation SQL, alors allez-y doucement avec moi.
Je suis en train d'écrire une requête qui produira le résultat en fonction de la valeur de l'un des paramètres externes. La structure ressemble actuellement à ce qui suit :
@ShowEntireCategory bit = 0
select distinct
p.pk
p.name
--other columns
from dbo.Project P
--bunch of left joins
where p.Status = 'Open'
--other conditions
Ce que j'essaie d'implémenter est le suivant : lorsque la valeur de ShowEntireCategory est 1 (changée programmatiquement par la sélection d'un bouton radio), il montrera les enregistrements de toutes les sous-catégories, qui sont à l'intérieur de la catégorie. Lorsqu'elle est égale à 0, seuls les enregistrements de la sous-catégorie sélectionnée sont affichés, tandis que les autres sous-catégories de cette catégorie restent intactes.
Je me suis produit une recherche sur la meilleure approche, et il réduit soit OÙ déclarations ou JOINs .
Ce que je veux savoir, c'est laquelle de ces approches je dois utiliser pour mon scénario ? Dans mon cas, la priorité est l'optimisation (temps d'exécution minimal) et la facilité de mise en œuvre.
NOTE : Mon objectif principal n'est pas de recevoir un code prêt à l'emploi (bien qu'un exemple de code serait le bienvenu), je veux juste connaître une meilleure approche, afin de pouvoir continuer mes recherches dans cette direction.
Merci d'avance !
UPDATE
J'ai effectué des recherches supplémentaires sur la structure de la base de données, et j'ai réussi à réduire les paramètres pertinents pour la question.
L'un est la table dbo.Project, qui contient : PK, CategoryKey (FK) (connecté à celui de la deuxième table), Name, Description, et tous les autres paramètres qui ne sont pas pertinents.
La deuxième est la table dbo.Area, qui contient : PK, AreaNumber, Name, CategoryKey (FK), IsCategory (1 = est catégorie, 0 = pas catégorie).
Désolé, mais je travaille dans un environnement rapide, c'est le maximum que j'ai pu faire. Veuillez me faire savoir si ce n'est pas suffisant.