Requête SQL
Résolu
splims
Messages postés
29
Date d'inscription
Statut
Membre
Dernière intervention
-
splims Messages postés 29 Date d'inscription Statut Membre Dernière intervention -
splims Messages postés 29 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un souci pour faire une requête
Mon problème est le suivant:
J'ai affaire à des lots et des sous lots qu'on peut distinguer par la catégorie
je m'explique: si la catégorie est de "Cat1" il s'agit d'un lot et si la catégory est de "Cat2" il s'agit d'un sous lot
Chaque sous lot à un lot parent unique, ils ont en commun les 1èrs 5 caractère du numéro de lot
ca veut dire.. par exemple si on a un lot dont le numéro de lot (num_lot) est L1234, ses sous lots sont de la forme L1234A, L1234B, L1234C..etc
Donc on peut remonter aux lot parents à partir du sous lots fils [ substr(num_lot,1,5)]
Ma table ma_table contient parmi d'autre les colonnes suivantes
ma_colonne1, ma_colonne2, num_lot, category...etc
je veux récupérer les valeurs de ma_colonne1 et ma_colonne2
Si category="Cat1"====> le lot est parent j'affiche directement ma_colonne1, ma_colonne2
Si category="Cat2"====> il s'agit d'un sous lot, donc il faut que je remonte au lot parent pour afficher ma_colonne1, ma_colonne2
J'espère que je suis clair
Ma question est: est ce qu'on peut faire une seule reqûete pour afficher ma_colonne1, ma_colonne2
Et merci par avance
J'ai un souci pour faire une requête
Mon problème est le suivant:
J'ai affaire à des lots et des sous lots qu'on peut distinguer par la catégorie
je m'explique: si la catégorie est de "Cat1" il s'agit d'un lot et si la catégory est de "Cat2" il s'agit d'un sous lot
Chaque sous lot à un lot parent unique, ils ont en commun les 1èrs 5 caractère du numéro de lot
ca veut dire.. par exemple si on a un lot dont le numéro de lot (num_lot) est L1234, ses sous lots sont de la forme L1234A, L1234B, L1234C..etc
Donc on peut remonter aux lot parents à partir du sous lots fils [ substr(num_lot,1,5)]
Ma table ma_table contient parmi d'autre les colonnes suivantes
ma_colonne1, ma_colonne2, num_lot, category...etc
je veux récupérer les valeurs de ma_colonne1 et ma_colonne2
Si category="Cat1"====> le lot est parent j'affiche directement ma_colonne1, ma_colonne2
Si category="Cat2"====> il s'agit d'un sous lot, donc il faut que je remonte au lot parent pour afficher ma_colonne1, ma_colonne2
J'espère que je suis clair
Ma question est: est ce qu'on peut faire une seule reqûete pour afficher ma_colonne1, ma_colonne2
Et merci par avance
A voir également:
- Requête SQL
- Logiciel sql - Télécharger - Bases de données
- Sql lister les tables ✓ - Forum Programmation
- Requête bloquée par le pare-feu applicatif claranet webfence ✓ - Forum Réseaux sociaux
- Jointure sql ✓ - Forum MySQL
- Erreur lors de l'envoi de la requête facebook - Forum Facebook
6 réponses
Bonjour,
Si j'ai bien compris, c'est très simple. Il te suffit de filtrer les enregistrements de catégorie 1 vu que pour les enregistrements de catégories 2 tu veux retrouver l'enregistrement parent, en n'affichant que les enregistrement parent c'est bon sauf si tu veux avoir plusieurs fois l'enregistrement parent en fonction du nombre de sous-lots (dans ce cas dis le moi, je t'aiderai à construire la requête).
Si j'ai bien compris, c'est très simple. Il te suffit de filtrer les enregistrements de catégorie 1 vu que pour les enregistrements de catégories 2 tu veux retrouver l'enregistrement parent, en n'affichant que les enregistrement parent c'est bon sauf si tu veux avoir plusieurs fois l'enregistrement parent en fonction du nombre de sous-lots (dans ce cas dis le moi, je t'aiderai à construire la requête).
ya un detail que j'ai pas précisé
ma requête conserne un lot connu d'avance et suivant ce lot et sa catégorie que je dois récupérer ma_colonne1 et ma_colonne2, donc il s'agit pas que d'un seul enregistrement
en java je sais comment le faire car il s'agit des if mais pour le faire en une seule requête je vois pas du tout comment le faire
ma requête conserne un lot connu d'avance et suivant ce lot et sa catégorie que je dois récupérer ma_colonne1 et ma_colonne2, donc il s'agit pas que d'un seul enregistrement
en java je sais comment le faire car il s'agit des if mais pour le faire en une seule requête je vois pas du tout comment le faire
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ca parait pas mal comme idée mais pour la faire il faut le savoir, surtout pour qqn comme moi qui n'est pas calé en SQL
je simplifie le pb peut etre que vous verrez mieux
select ma_colonne1, ma_colonne2, substr(num_lot,1,5) valeur,category from ma_table where (condition sur le lot)
si category="cat1"=====> pas de souci
si category="cat2" ( select ma_colonne1, ma_colonne2, num_lot, category from ma_table where substr(num_lot,1,5)=valeur and category="cat2")
c'est pas forcément la bonne manière d'écrire les instructions
valeur dans le 1èr select et la deuxième condition si est le même
je simplifie le pb peut etre que vous verrez mieux
select ma_colonne1, ma_colonne2, substr(num_lot,1,5) valeur,category from ma_table where (condition sur le lot)
si category="cat1"=====> pas de souci
si category="cat2" ( select ma_colonne1, ma_colonne2, num_lot, category from ma_table where substr(num_lot,1,5)=valeur and category="cat2")
c'est pas forcément la bonne manière d'écrire les instructions
valeur dans le 1èr select et la deuxième condition si est le même
ca parait pas mal comme idée mais pour la faire il faut le savoir, surtout pour qqn comme moi qui n'est pas calé en SQL
je simplifie le pb peut etre que vous verrez mieux
select ma_colonne1, ma_colonne2, substr(num_lot,1,5) valeur,category from ma_table where (condition sur le lot)
si category="cat1"=====> pas de souci
si category="cat2" ( select ma_colonne1, ma_colonne2, num_lot, category from ma_table where substr(num_lot,1,5)=valeur and category="cat1")
c'est pas forcément la bonne manière d'écrire les instructions
valeur dans le 1èr select et la deuxième condition si est le même
je simplifie le pb peut etre que vous verrez mieux
select ma_colonne1, ma_colonne2, substr(num_lot,1,5) valeur,category from ma_table where (condition sur le lot)
si category="cat1"=====> pas de souci
si category="cat2" ( select ma_colonne1, ma_colonne2, num_lot, category from ma_table where substr(num_lot,1,5)=valeur and category="cat1")
c'est pas forcément la bonne manière d'écrire les instructions
valeur dans le 1èr select et la deuxième condition si est le même