Forum des testeurs
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
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
» Club Qualité Logicielle 2020, plus que quelques jours pour vous inscrire !
Requêtes de sélection de produit ouverts EmptyMar 10 Nov - 18:50 par TLNX

» Blog sur le test logiciel
Requêtes de sélection de produit ouverts EmptyMar 31 Jan - 10:59 par ehbientestezmaintenant

» Exporter des données d'ALM vers Excel (Add-in)
Requêtes de sélection de produit ouverts EmptyMar 31 Jan - 2:16 par Rules7

» Testeuse HP !
Requêtes de sélection de produit ouverts EmptyMar 31 Jan - 2:04 par Rules7

» Nouvelle testeuse !
Requêtes de sélection de produit ouverts EmptyMar 24 Jan - 14:10 par rachidos_2017

» Nouveau Testeur
Requêtes de sélection de produit ouverts EmptyMar 24 Jan - 14:09 par rachidos_2017

» Installation HP QC 12.5
Requêtes de sélection de produit ouverts EmptyMar 24 Jan - 13:53 par rachidos_2017

» Un petit nouveau
Requêtes de sélection de produit ouverts EmptyMar 8 Nov - 20:41 par RegisK

» A newbie in the domain
Requêtes de sélection de produit ouverts EmptyVen 29 Avr - 10:47 par Roundcat

Rechercher
 
 

Résultats par :
 


Rechercher Recherche avancée

Le deal à ne pas rater :
Fnac : 2 jeux de société achetés = le 3ème offert (le moins cher)
Voir le deal

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

Requêtes de sélection de produit ouverts

3 participants

Aller en bas  Message [Page 1 sur 1]

Rodrigue 59

Rodrigue 59
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.

https://leforumdestesteurs.forumactif.com

edno

edno
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

Rodrigue 59
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.

https://leforumdestesteurs.forumactif.com

edno

edno
Testeur junior
Testeur junior

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

http://www.factoryconsulting.com

Rodrigue 59

Rodrigue 59
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...

https://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

Rodrigue 59
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

https://leforumdestesteurs.forumactif.com

Contenu sponsorisé



Revenir en haut  Message [Page 1 sur 1]

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