Ces requêtes sql met en pls 95% du forum
Supprimé- 1
Cette première requête sert à récupérer la liste des boites dont aucun des instruments contenus ne sont marqués
select count(*) from boxes where box_id not in (
select distinct(box_id) from box_instruments where inst_id in (
select inst_id from instruments where inst_datamatrix is not null));
De bas vers le haut :
Récupère la liste des instruments avec un code datamatrix (instruments marqués)
Récupère la liste des boites avec au moins un instrument marqué
Compte le nombre de boite qui NE sont PAS dans la liste des boites avec au moins un instrument marqué
Cette deuxième requête sert à récupérer la liste des boites dont au moins un des instruments contenus n'est pas marqué
select count(*) from boxes where box_id in(
select distinct(box_id) from box_instruments where inst_id in (
select inst_id from instruments where inst_datamatrix is null));
De bas vers le haut :
Récupère la liste des instruments sans code datamatrix
Récupère la liste des boites avec au moins un instrument non marqué
Compte le nombre de boite qui sont dans la liste des boites avec au moins un instrument non marqué
Conclusion : logiquement la deuxième requête devrait retourner une valeur égale ou supérieur à la première, et pourtant c'est l'inverse qui se produit
select count(*) from boxes where box_id not in (
select distinct(box_id) from box_instruments where inst_id in (
select inst_id from instruments where inst_datamatrix is not null));select count(*) from boxes where box_id in(
select distinct(box_id) from box_instruments where inst_id in (
select inst_id from instruments where inst_datamatrix is null));
J'en sais rien mais peut être à cause de ces conditions
Le 20 décembre 2023 à 14:06:08 :
File une trace avec explain et le schema ça sera plus simple à lire
boxes : colonne clé primaire box_id
instruments : colonne clé primaire instr_id et colonne nullable instr_datamatrix
box_instrument : colonne clé primaire boxinstr_id, colonne box_id et colonne instr_id
box_instrument sert à faire le lien entre les instruments et les boites
Il peut y avoir plusieurs instruments par boite et il peut y avoir un même instrument dans plusieurs boites
Le 20 décembre 2023 à 14:18:21 :
Demande à chatGTP comme tout le monde
This !
Le 20 décembre 2023 à 13:56:08 Saygus5 a écrit :
Cette première requête sert à récupérer la liste des boites dont aucun des instruments contenus ne sont marquésselect count(*) from boxes where box_id not in ( select distinct(box_id) from box_instruments where inst_id in ( select inst_id from instruments where inst_datamatrix is not null));
De bas vers le haut :
Récupère la liste des instruments avec un code datamatrix (instruments marqués)
Récupère la liste des boites avec au moins un instrument marqué
Compte le nombre de boite qui NE sont PAS dans la liste des boites avec au moins un instrument marquéCette deuxième requête sert à récupérer la liste des boites dont au moins un des instruments contenus n'est pas marqué
select count(*) from boxes where box_id in( select distinct(box_id) from box_instruments where inst_id in ( select inst_id from instruments where inst_datamatrix is null));
De bas vers le haut :
Récupère la liste des instruments sans code datamatrix
Récupère la liste des boites avec au moins un instrument non marqué
Compte le nombre de boite qui sont dans la liste des boites avec au moins un instrument non marquéConclusion : logiquement la deuxième requête devrait retourner une valeur égale ou supérieur à la première, et pourtant c'est l'inverse qui se produit
T'as fumé l'OP ou tu troll ?
Le 20 décembre 2023 à 14:32:40 :
Le 20 décembre 2023 à 13:56:08 Saygus5 a écrit :
Cette première requête sert à récupérer la liste des boites dont aucun des instruments contenus ne sont marquésselect count(*) from boxes where box_id not in ( select distinct(box_id) from box_instruments where inst_id in ( select inst_id from instruments where inst_datamatrix is not null));
De bas vers le haut :
Récupère la liste des instruments avec un code datamatrix (instruments marqués)
Récupère la liste des boites avec au moins un instrument marqué
Compte le nombre de boite qui NE sont PAS dans la liste des boites avec au moins un instrument marquéCette deuxième requête sert à récupérer la liste des boites dont au moins un des instruments contenus n'est pas marqué
select count(*) from boxes where box_id in( select distinct(box_id) from box_instruments where inst_id in ( select inst_id from instruments where inst_datamatrix is null));
De bas vers le haut :
Récupère la liste des instruments sans code datamatrix
Récupère la liste des boites avec au moins un instrument non marqué
Compte le nombre de boite qui sont dans la liste des boites avec au moins un instrument non marquéConclusion : logiquement la deuxième requête devrait retourner une valeur égale ou supérieur à la première, et pourtant c'est l'inverse qui se produit
T'as fumé l'OP ou tu troll ?
Explique
- 1
Données du topic
- Auteur
- Saygus5
- Date de création
- 20 décembre 2023 à 13:56:08
- Date de suppression
- 28 décembre 2023 à 23:23:00
- Supprimé par
- Auteur
- Nb. messages archivés
- 11
- Nb. messages JVC
- 11