-1
votes

MySQL Exclure les lignes de rangées

J'essaie d'obtenir toutes les lignes mais évitez ceux qui ont une entrée «départ» sur la colonne «Statut».

Je veux savoir que les "voyages" "sont arrivés" comme "statut" mais excluent ceux-ci qui ont déjà "départ" comme "statut".

J'ai déjà essayé avec groupe par distinct (sans le résultat souhaité).

DataBse: xxx

requête: xxx

résultat souhaité: xxx < P> Voici le Fiddle SQL: http://sqlfiddle.com/#!9/9ec331/ 3


3 commentaires

Pour plus de clarification, essayez-vous de filtrer les lignes «arrivées» qui ont le même trajet comme des lignes «départ»? C'est tout ce que je peux assumer à la recherche des données d'échantillon dans le violon SQL; Vous voudrez peut-être mettre à jour la question avec les exemples de données et une déclaration claire de ce que vous recherchez.


Votre requête est équivalente à: Sélectionnez * à partir du test lorsque l'état <> «Départ» . Maintenant, vous devriez expliquer ce qui est si spécial sur les lignes que vous souhaitez en conséquence.


@CTESKI je suis désolé. Je veux savoir que les "voyages" ont "arrivé" comme "statut" mais excluent ceux qui ont déjà "au départ" comme "statut"


4 Réponses :


1
votes

Vous pouvez utiliser la colonne "Date" et utiliser une valeur comme paramètre

Sélectionnez * à partir du test lorsque l'état <> «Départ» et date = '2019-03-05'

Voir cet exemple: http://sqlfiddle.com/#!9/9ec331/18


1 commentaires

Merci mais les dates ne sont pas une façon viable de l'atteindre.



0
votes

Vous pouvez essayer cette requête. Il ne montre que des lignes où le numéro de voyage est seulement en 1 rangée.

SELECT * FROM `test` WHERE `trip` IN (
  select trip FROM `test` group by trip
  having count(*) = 1
)


1 commentaires

Merci, mais celui-ci ne fonctionne pas pour moi car si le nombre de "voyage" est inscrit à nouveau, il cesse de le montrer



3
votes

Vous pouvez le faire avec n'existe pas code>: xxx pré>

Je ne sais pas si vous voulez que la condition de la sous-requête peut être peut-être comme ceci: P>

where trip = t.trip and status = 'departing' and date > t.date


1 commentaires

Merci@forpas, cela a fonctionné! J'utilisais une mauvaise déclaration. Merci!



0
votes

Pour cet exemple, je regrouperais les résultats dans une clause imbriquée. Quelque chose comme ceci: xxx


1 commentaires

Merci, mais celui-ci ne fonctionne pas pour moi, car si le nombre de "voyage" est inscrit à nouveau, il cessera de le montrer.