Cette procédure stockée sous remplit mon paramètre Projectphase
. Comme vous pouvez le voir, l'utilisateur doit d'abord sélectionner @PurchaseOrder
, qui remplira alors le paramètre Projectphase.Valeurs NULL dans le paramètre multivaleur
CREATE PROCEDURE [dbo].[USP_GetProjectPhase]
@PurchaseOrder INT
AS
SELECT
pp.ProjectPhaseID, pp.Phase
FROM
ProjectPhase pp
WHERE
@PurchaseOrder = pp.PurchaseOrderId
Maintenant, lorsque l'utilisateur sélectionne un PurchaseOrder
qui a en effet Projectphases
, tout va bien. Le problème se situe dans les ordres de vente qui n'ont pas de ProjectPhase
.
La requête utilisée pour mon ensemble de données affiché dans le rapport comporte la ligne suivante dans la clause WHERE. C'est un paramètre à plusieurs valeurs, car l'utilisateur doit être capable de sélectionner plusieurs phases de projet.
WHERE
reg.ProjectPhaseId IN (SELECT Value
FROM fnLocal_CmnParseList(@Phase,','))
J'ai essayé UNIONS avec NULL, NULL. J'ai essayé des choses avec ISNULL mais je n'arrive pas à obtenir la requête à exécuter quand @ProjectPhase
est NULL.
Un peu d'aide serait grandement apprécié parce que je me suis cassé la tête dessus trop longtemps maintenant. Merci
si @Phase est nul alors il est logique que l'ensemble de données retourne vide. – Jayvee
oui je sais, mais comment puis-je le faire ne pas être vide. Est-ce juste un petit ajustement dans ma clause where? Projectphase doit être capable d'avoir plusieurs valeurs ou d'avoir une valeur NULL. –
Peut-être que je vais avoir un moment de densité améliorée, mais il n'est pas clair si vous voulez être en mesure de récupérer des lignes où 'ProjectPhaseId' est en fait NULL. Quelque chose comme 'WHERE reg.ProjectPhaseId IN (SELECT Valeur de fnLocal_CmnParseList (@Phase, ',')) ou (@Phase est NULL et reg.ProjectPhaseId est NULL)'. Peut-être que vous pourriez clarifier avec quelques exemples de données. – HABO