Requete sql
Résolu
mariline285
Messages postés
76
Date d'inscription
Statut
Membre
Dernière intervention
-
DORA -
DORA -
Bonjour,
J'ai un petit probleme avec ma requete.
Je vous explique le principe: une personne peut avoir plusieurs numero ET un numero peut etre utilisé par plusieurs personnes
.
Voici un exemple d'affichage:
numero_ticket | nom
001 | pers_1
001 | pers_2
002 | pers_2
J'aimerai afficher les lignes dont le numero_ticket est associé a une seule et unique personne.
Ce qui correspond d'apres mon affichage:
numero_ticket | nom
002 | pers_2
Voici ma requete mais elle ne marche pas!!!!!!!!
SELECT NUM_TICKET,OPERATEUR
FROM `tps_reel`
HAVING count(num_ticket)>1
QUELQU UN POURRAIT IL M AIDER SVP?????
MERCI
J'ai un petit probleme avec ma requete.
Je vous explique le principe: une personne peut avoir plusieurs numero ET un numero peut etre utilisé par plusieurs personnes
.
Voici un exemple d'affichage:
numero_ticket | nom
001 | pers_1
001 | pers_2
002 | pers_2
J'aimerai afficher les lignes dont le numero_ticket est associé a une seule et unique personne.
Ce qui correspond d'apres mon affichage:
numero_ticket | nom
002 | pers_2
Voici ma requete mais elle ne marche pas!!!!!!!!
SELECT NUM_TICKET,OPERATEUR
FROM `tps_reel`
HAVING count(num_ticket)>1
QUELQU UN POURRAIT IL M AIDER SVP?????
MERCI
A voir également:
- Requete 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
9 réponses
Tu recherche quoi?
Les Tickets pour 1 personnes en particulier?
SELECT NUM_TICKET,OPERATEUR
FROM `tps_reel`
WHERE OPERATEUR = `pers_2`
Les Tickets pour 1 personnes en particulier?
SELECT NUM_TICKET,OPERATEUR
FROM `tps_reel`
WHERE OPERATEUR = `pers_2`
Essaye ca
SELECT NUM_TICKET, OPERATEUR, COUNT(OPERATEUR) AS COMPTEUR
FROM `tps_reel`
WHERE COMPTEUR=1
SELECT NUM_TICKET, OPERATEUR, COUNT(OPERATEUR) AS COMPTEUR
FROM `tps_reel`
WHERE COMPTEUR=1
Dsl j'ai tapé trop rapidement et j'avais pas testé :
SELECT NUM_TICKET, OPERATEUR
FROM `tps_reel`
GROUP BY `NUM_TICKET`
HAVING COUNT( `OPERATEUR` ) =1
SELECT NUM_TICKET, OPERATEUR
FROM `tps_reel`
GROUP BY `NUM_TICKET`
HAVING COUNT( `OPERATEUR` ) =1
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Oui ça marche merci!!!!!!!!!!!!!!!!!
Et tu serais comment afficher les tickets qui sont associés a une unique et seule personne mais meme les doublons?
par exemple:
num_ticket = 001 et operateur = pers_1
num_ticket = 001 et operateur = pers_1
Et tu serais comment afficher les tickets qui sont associés a une unique et seule personne mais meme les doublons?
par exemple:
num_ticket = 001 et operateur = pers_1
num_ticket = 001 et operateur = pers_1
SELECT NUM_TICKET, OPERATEUR , COUNT( `OPERATEUR` )
FROM `tps_reel`
GROUP BY `NUM_TICKET`,`OPERATEUR`
HAVING COUNT( `OPERATEUR` ) >1
Il te sortira une ligne avec le nombre de ligne identiques (au moins 2 lignes pour apparaitre)
Mais si tu as une clef primaire sur 'NUM_TICKET+OPERATEUR' alors tu devrai ne pas avoir de lignes.
FROM `tps_reel`
GROUP BY `NUM_TICKET`,`OPERATEUR`
HAVING COUNT( `OPERATEUR` ) >1
Il te sortira une ligne avec le nombre de ligne identiques (au moins 2 lignes pour apparaitre)
Mais si tu as une clef primaire sur 'NUM_TICKET+OPERATEUR' alors tu devrai ne pas avoir de lignes.
Pour revenir a mon 1er prb, la requete etait celle ci:
SELECT NUM_TICKET, OPERATEUR
FROM `tps_reel`
GROUP BY `NUM_TICKET`
HAVING COUNT( `OPERATEUR` ) =1
ORDER BY NUM_TICKET
Si je veux afficher tous les tickets associés uniquement à l operateur toto ça ne marche pas, je ne comprends pas.
voici ma requete:
SELECT NUM_TICKET, OPERATEUR
FROM `tps_reel`
where operateur='toto'
GROUP BY `NUM_TICKET`
HAVING COUNT( `OPERATEUR` ) =1
ORDER BY NUM_TICKET
SELECT NUM_TICKET, OPERATEUR
FROM `tps_reel`
GROUP BY `NUM_TICKET`
HAVING COUNT( `OPERATEUR` ) =1
ORDER BY NUM_TICKET
Si je veux afficher tous les tickets associés uniquement à l operateur toto ça ne marche pas, je ne comprends pas.
voici ma requete:
SELECT NUM_TICKET, OPERATEUR
FROM `tps_reel`
where operateur='toto'
GROUP BY `NUM_TICKET`
HAVING COUNT( `OPERATEUR` ) =1
ORDER BY NUM_TICKET
La requête :
SELECT NUM_TICKET, OPERATEUR
FROM `tps_reel`
WHERE operateur = 'toto'
GROUP BY `NUM_TICKET`
HAVING COUNT( `OPERATEUR` ) =1
ORDER BY NUM_TICKET
est correcte.
Pour vérifier exécute cette requête :
SELECT NUM_TICKET, OPERATEUR,COUNT( `OPERATEUR`)
FROM `tps_reel`
WHERE operateur = 'toto'
GROUP BY `NUM_TICKET`
ORDER BY NUM_TICKET
le type de résultat (ma db de test pour ton souci)
NUM_TICKET OPERATEUR COUNT( `OPERATEUR`)
001 OPE2 2
002 OPE2 1
Si tu n'as pas de 1 dans le count cela explique pourquoi tu n'as aucun résultat.
Sinon si ton champs OPERATEUR est un CHAR et non un VARCHAR il faut completer avec des espaces :
Utilisateur toto
en CHAR(15) = 'toto '
en VARCHAR(15) = 'toto'
Note la différence avec les espaces en plus pour le CHAR.
SELECT NUM_TICKET, OPERATEUR
FROM `tps_reel`
WHERE operateur = 'toto'
GROUP BY `NUM_TICKET`
HAVING COUNT( `OPERATEUR` ) =1
ORDER BY NUM_TICKET
est correcte.
Pour vérifier exécute cette requête :
SELECT NUM_TICKET, OPERATEUR,COUNT( `OPERATEUR`)
FROM `tps_reel`
WHERE operateur = 'toto'
GROUP BY `NUM_TICKET`
ORDER BY NUM_TICKET
le type de résultat (ma db de test pour ton souci)
NUM_TICKET OPERATEUR COUNT( `OPERATEUR`)
001 OPE2 2
002 OPE2 1
Si tu n'as pas de 1 dans le count cela explique pourquoi tu n'as aucun résultat.
Sinon si ton champs OPERATEUR est un CHAR et non un VARCHAR il faut completer avec des espaces :
Utilisateur toto
en CHAR(15) = 'toto '
en VARCHAR(15) = 'toto'
Note la différence avec les espaces en plus pour le CHAR.
J'ai reussi à afficher les tickets associés uniquement à une seule personne en faisant une requête imbriquée, voici ma requête:
SELECT NUM_TICKET, OPERATEUR
FROM `tps_reel`
WHERE `NUM_TICKET`
IN
(
SELECT num_ticket
FROM tps_reel
WHERE operateur = 'toto'
)
GROUP BY `NUM_TICKET`
HAVING COUNT( `OPERATEUR` ) =1
ORDER BY NUM_TICKET
Néanmoins, dans certains cas je peux avoir un ticket associé a toto et un meme ticket associé à toto => ce qui revient a dire que le ticket est asocié à toto. C'est cette partie là qui ne fonctionne pas dans la requete.
Dois je faire une nouvelle requete ou modifier celle ci?
SELECT NUM_TICKET, OPERATEUR
FROM `tps_reel`
WHERE `NUM_TICKET`
IN
(
SELECT num_ticket
FROM tps_reel
WHERE operateur = 'toto'
)
GROUP BY `NUM_TICKET`
HAVING COUNT( `OPERATEUR` ) =1
ORDER BY NUM_TICKET
Néanmoins, dans certains cas je peux avoir un ticket associé a toto et un meme ticket associé à toto => ce qui revient a dire que le ticket est asocié à toto. C'est cette partie là qui ne fonctionne pas dans la requete.
Dois je faire une nouvelle requete ou modifier celle ci?
Peux tu me donner un exemple de ce que tu as dans ta table et le résultat que tu attends?
svp ou la faut dans cette requet et sou requet (
SELECT dbo.EMP.Matr, dbo.EMP.NomE, dbo.EMP.poste, dbo.PARTICIPATION.codeP
FROM dbo.PARTICIPATION INNER JOIN
dbo.EMP ON dbo.PARTICIPATION.Matr = dbo.EMP.Matr
where dbo.EMP.Matr in(
SELECT Matr, COUNT(codeP) as nbr
FROM dbo.PARTICIPATION
GROUP BY Matr
HAVING COUNT(codeP) >1)
SELECT dbo.EMP.Matr, dbo.EMP.NomE, dbo.EMP.poste, dbo.PARTICIPATION.codeP
FROM dbo.PARTICIPATION INNER JOIN
dbo.EMP ON dbo.PARTICIPATION.Matr = dbo.EMP.Matr
where dbo.EMP.Matr in(
SELECT Matr, COUNT(codeP) as nbr
FROM dbo.PARTICIPATION
GROUP BY Matr
HAVING COUNT(codeP) >1)
T as une idée?