Forum des testeurs

Forum pour se réunir entre testeurs logiciels et parler des méthodes mais aussi des logiciels de management (TestLink, Salomé,Test Director...), et d'automatisation (Auto-it, Sélénium, Quick Test Pro...).

Derniers sujets
» Blog sur le test logiciel
Mar 31 Jan - 10:59 par ehbientestezmaintenant

» Exporter des données d'ALM vers Excel (Add-in)
Mar 31 Jan - 2:16 par Rules7

» Testeuse HP !
Mar 31 Jan - 2:04 par Rules7

» Nouvelle testeuse !
Mar 24 Jan - 14:10 par rachidos_2017

» Nouveau Testeur
Mar 24 Jan - 14:09 par rachidos_2017

» Installation HP QC 12.5
Mar 24 Jan - 13:53 par rachidos_2017

» Un petit nouveau
Mar 8 Nov - 20:41 par RegisK

» A newbie in the domain
Ven 29 Avr - 10:47 par Roundcat

» Blocage de version
Mer 20 Avr - 15:37 par Clément Robion

Rechercher
 
 

Résultats par :
 


Rechercher Recherche avancée


Vous n'êtes pas connecté. Connectez-vous ou enregistrez-vous

Requêtes de sélection de produit ouverts

Voir le sujet précédent Voir le sujet suivant Aller en bas  Message [Page 1 sur 1]

Rodrigue 59

avatar
Admin
Admin
Bonjour,

J'ai une requête de ce type :

SELECT A.CHAMP1 AS "champ 1",A.CHAMP2 AS "champ 2",A.CHAMP3 AS "champ 3",A.CHAMP4 AS "champ 4",A.DATE_DEB1 AS "Date début 1",A.DATE_FIN1 AS "Date fin 1",A.DATE_DEB2 AS "Date début 2",A.DATE_FIN2 AS "Date fin 2"
FROM TABLE A
WHERE A.CHAMP2 IS NOT NULL
AND A.CHAMP4= 'PRD'
AND A.DATE_DEB1 <= SYSDATE
AND A.DATE_FIN1>SYSDATE
AND ((A.DATE_DEB2 <= SYSDATE AND A.DATE_FIN2>SYSDATE)
OR (A.DATE_DEB2 <= SYSDATE AND A.DATE_FIN2 IS NULL)
OR ((A.DATE_DEB2 IS NULL AND A.DATE_FIN2>SYSDATE)
OR (A.DATE_DEB2 IS NULL AND A.DATE_FIN2 IS NULL))
ORDER BY A.CHAMP2 ASC

Les résultats retournés sont bien avec une "date debut 2" avant la date du jour ou nulle et une "date fin 2" supérieure à la date du jour ou nulle. Par contre le "champ 4" n'est pas forcément à PRD, la "date de début 1" n'est pas forcément inférieure à la date du jour et la "date de fin 1" n'est pas forcément supérieure à la date du jour.

Quelqu'un aurrait-il une idée de la manière dont je dois m'y prendre pour réussir à obtenir les résultats attendus, et me dire pourquoi ce n'est pas le cas ici?
Merci d'avance.

http://leforumdestesteurs.forumactif.com

edno

avatar
Testeur junior
Testeur junior
Je ne suis pas certain de comprendre l'objectif de votre requête.

Mais je pourrais déjà indiquer qu'il doit surement exister une simplification rapide qui permettrait d'offrir plus de lisibilité et simplifier la maintenance :
Code:
(A.DATE_DEB2 <= SYSDATE AND A.DATE_FIN2>SYSDATE)
OR (A.DATE_DEB2 <= SYSDATE AND A.DATE_FIN2 IS NULL)
OR ((A.DATE_DEB2 IS NULL AND A.DATE_FIN2>SYSDATE)
OR (A.DATE_DEB2 IS NULL AND A.DATE_FIN2 IS NULL)
Il semble que vous regroupez ici l'ensemble des couples possibles sauf le cas où A.DATE_DEB2 > SYSDATE, donc sauf erreur de ma part on peut remplacer votre expression lourde par son opposé.

Autre remarque, il n'est pas nécessaire de préfixer les champs avec le nom de la table s'il n'y a pas d'ambiguïté possible, notamment quand il n'y a qu'une seule table utilisée.

Pour répondre à votre problème, serait-il possible d'avoir un exemple du résultat obtenu et du résultat attendu ?

http://www.factoryconsulting.com

Rodrigue 59

avatar
Admin
Admin
Effectivement j'avais commencé comme çà mais çà ne fonctionnait pas non plus.
Je pense que le problème vient du logiciel, qui est une sorte de base développé maison assez particulière, et ou le langage SQL réagit parfois étrangement.
En tout cas votre réponse, confirme le fait que cette requête devrais fonctionner et donc bien que le problème vient de l'éditeur SQL lui même.
Merci.

http://leforumdestesteurs.forumactif.com

edno

avatar
Testeur junior
Testeur junior
Avez-vous essayé avec un requêteur SQL autre celui "maison" ?

http://www.factoryconsulting.com

Rodrigue 59

avatar
Admin
Admin
Il faudrait que je vois si je ne peux pas obtenir les identifiants de connexion pour me connecter aux bases à l'aide de PL-SQL. Mais je ne suis pas sur que je pourais les obtenir...

http://leforumdestesteurs.forumactif.com

den75


Testeur junior
Testeur junior
"
AND A.CHAMP4= 'PRD'
AND A.DATE_DEB1 <= SYSDATE
AND A.DATE_FIN1>SYSDATE
AND ((A.DATE_DEB2 <= SYSDATE AND A.DATE_FIN2>SYSDATE)
OR (A.DATE_DEB2 <= SYSDATE AND A.DATE_FIN2 IS NULL)
parenthèse ouvrante ? ==>
OR ((A.DATE_DEB2 IS NULL AND A.DATE_FIN2>SYSDATE)
OR (A.DATE_DEB2 IS NULL AND A.DATE_FIN2 IS NULL))
"

Il n'y aurait pas une parenthèse ouvrante en trop.

Rodrigue 59

avatar
Admin
Admin
Effectivement il me semble (tout au moins ici) néanmoins il y a quand même un problème avec le requêteur je pense.
Merci pour votre aide, je n'ai pas le temps de regarder actuellement, mais dès que j'en ai un peu je vais revoir la requête, et voir également si je peux me connecter à la base à l'aide de PLSQL

http://leforumdestesteurs.forumactif.com

Contenu sponsorisé


Voir le sujet précédent Voir le sujet suivant Revenir en haut  Message [Page 1 sur 1]

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum