Bonjour,
je vous expose mon problème qui à mon avis n'a pas de solution, mais on ne sait jamais avec les cerveaux brillants de DVP.
Je travaille sous SQL Serveur et mon chef me demande de réaliser ceci :
Sélectionner les données de ma table scm_entities_selections. Mais si je n'ai pas de données alors afficher les données de BASE_ENTITY
J'ai réussi à le faire avec un bout de code:
Seulement, le progiciel n'accepte pas de traitement comme celui-là. Mon chef aimerait que je trouve le même résultat en une seule requête.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 declare @test int SELECT @test=count(*) FROM SCM_ENTITIES_SELECTIONS SO WHERE SO.SELECTION_TYPE='1DIM' AND SO.CONNECTION_CODE=DBO.SCMGETSESSIONID() IF @test>0 BEGIN SELECT P.B_ENTITY_CODE AS TXT_BE_CODE, P.CAT_CODE AS CAT_CODE, C.CAT_IDEN AS CATEGORY, P.B_ENTITY_IDEN AS IDENTIFIER, P.B_ENTITY_DESC AS DESCRIPTION, P.B_ENTITY_CLASS AS CLASS FROM BASE_ENTITIES P INNER JOIN CATEGORIES C ON P.CAT_CODE = C.CAT_CODE WHERE C.CAT_IDEN='REFERENCE-COLORIS' END ELSE BEGIN SELECT P.B_ENTITY_CODE AS TXT_BE_CODE, P.CAT_CODE AS CAT_CODE, C.CAT_IDEN AS CATEGORY, P.B_ENTITY_IDEN AS IDENTIFIER, P.B_ENTITY_DESC AS DESCRIPTION, P.B_ENTITY_CLASS AS CLASS FROM BASE_ENTITIES P INNER JOIN CATEGORIES C ON P.CAT_CODE = C.CAT_CODE WHERE C.CAT_IDEN='REFERENCE-COLORIS' AND EXISTS ( SELECT * FROM SCM_ENTITIES_SELECTIONS SO WHERE SO.SELECTION_TYPE='1DIM' AND SO.ENTITY_CODE=P.B_ENTITY_CODE AND SO.CONNECTION_CODE=DBO.SCMGETSESSIONID() ) END
Mais que ce soit avec Union, Intersect, MINUS et consors, je ne vois pas de solution...
Allez-vous me sortir une solution de derrière les fagots?
Partager