IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo
Sommaire > Champs multi-valués > SQL
        Comment compter le nombre de valeurs distinctes d'un champ multi-valué sur l'ensemble la table en SQL ?
        Comment compter le nombre de valeur d'un champ multi-valué en SQL?
        Comment filtrer les enregistrements en fonction des valeurs d'un champ multi-valué ?
        Comment lister les valeurs distinctes d'un champs multi-valué sur l'ensemble de la table en SQL ?
        Comment savoir si un champ multi-valué est vide en SQL ?
        Comment supprimer toutes les valeurs d'un champs multi-valué ?
        Comment supprimer une valeur d'un champs multi-valué ?
        Est il possible de créer un nouvel enregistrement avec un champ multi-valué en SQL ?
        Est il possible d'insérer une valeur dans un champs multi valué en SQL ?

rechercher
precedent    sommaire    suivant    telecharger


Comment compter le nombre de valeurs distinctes d'un champ multi-valué sur l'ensemble la table en SQL ?
auteur :Christophe Warin
Soit la table suivante :

  • NumChauffeur : NuméroAuto
  • NomChauffeur : Texte(20)
  • PrenomChauffeur : Texte(20)
  • PermisChauffeur : Texte(1) - Liste de choix de valeurs : A;B;C;D;E - Valeurs multiples autorisées

La requête permet de compter le nombreux de permis différents attribués
SELECT Count(PermisDistinct) AS NombreDePermis
FROM
  (SELECT  DISTINCT(PermisChauffeur.Value)  AS PermisDistinct
    FROM  tbl_chauffeur)

Comment compter le nombre de valeur d'un champ multi-valué en SQL?
auteur :Christophe Warin
Soit la table suivante :

  • NumChauffeur : NuméroAuto
  • NomChauffeur : Texte(20)
  • PrenomChauffeur : Texte(20)
  • PermisChauffeur : Texte(1) - Liste de choix de valeurs : A;B;C;D;E - Valeurs multiples autorisées

La requête suivante liste les chauffeurs ainsi que le nombre de permis qu'ils possèdent
SELECT NomChauffeur, PrenomChauffeur, (SELECT Count(PermisChauffeur.Value) 
FROM tbl_chauffeur WHERE NumChauffeur=T.NumChauffeur)
FROM tbl_chauffeur AS T;
lien : faq Comment savoir si un champ multi-valué est vide en SQL ?
lien : faq Comment compter le nombre de valeurs distinctes d'un champ multi-valué sur l'ensemble la table en SQL ?
lien : faq Comment compter le nombre de valeurs d'un champ multi-valué en VBA ?

Comment filtrer les enregistrements en fonction des valeurs d'un champ multi-valué ?
auteur :Christophe Warin
Soit la table suivante :

  • NumChauffeur : NuméroAuto
  • NomChauffeur : Texte(20)
  • PrenomChauffeur : Texte(20)
  • PermisChauffeur : Texte(1) - Liste de choix de valeurs : A;B;C;D;E - Valeurs multiples autorisées

La requête suivante permet de lister les chauffeurs possédant le permis D
SELECT NomChauffeur,PrenomChauffeur
FROM tbl_chauffeur
WHERE PermisChauffeur.Value="D"
Cette deuxième requête retourne les chauffeurs possédant à la fois le permis D et le permis E
SELECT NomChauffeur, PrenomChauffeur
FROM tbl_chauffeur
WHERE PermisChauffeur.Value="D" AND PermisChauffeur.Value="E";
Enfin cette troisième permet de lister les chauffeurs titulaires des permis D ou E ou bien les deux
SELECT NomChauffeur, PrenomChauffeur
FROM tbl_chauffeur
WHERE PermisChauffeur.Value="D" OR  PermisChauffeur.Value="E";
Pour cette dernière requête il aurait été possible d'utiliser un critère avec IN


Comment lister les valeurs distinctes d'un champs multi-valué sur l'ensemble de la table en SQL ?
auteur :Christophe Warin
Soit la table suivante :

  • NumChauffeur : NuméroAuto
  • NomChauffeur : Texte(20)
  • PrenomChauffeur : Texte(20)
  • PermisChauffeur : Texte(1) - Liste de choix de valeurs : A;B;C;D;E - Valeurs multiples autorisées

La requête permet de lister les permis attribués
SELECT  DISTINCT(PermisChauffeur.Value)
FROM  tbl_chauffeur
lien : faq Comment savoir si un champ multi-valué est vide en SQL ?
lien : faq Comment compter le nombre de valeur d'un champ multi-valué en SQL?

Comment savoir si un champ multi-valué est vide en SQL ?
auteur :Christophe Warin
Soit la table suivante :

  • NumChauffeur : NuméroAuto
  • NomChauffeur : Texte(20)
  • PrenomChauffeur : Texte(20)
  • PermisChauffeur : Texte(1) - Liste de choix de valeurs : A;B;C;D;E - Valeurs multiples autorisées

Il existe 3 méthodes pour lister les Chauffeurs ne possédant aucun permis :
SELECT NomChauffeur, PrenomChauffeur
FROM tbl_chauffeur
WHERE PermisChauffeur.Value IS NULL;
Ou
SELECT NomChauffeur, PrenomChauffeur
FROM tbl_chauffeur
WHERE IsNull(PermisChauffeur.Value);
Ou encore
SELECT NomChauffeur, PrenomChauffeur
FROM tbl_chauffeur AS T
WHERE (SELECT Count(PermisChauffeur.Value) FROM tbl_chauffeur WHERE NumChauffeur=T.NumChauffeur)=0;
lien : faq Comment compter le nombre de valeurs distinctes d'un champ multi-valué sur l'ensemble la table en SQL ?
lien : faq Comment compter le nombre de valeur d'un champ multi-valué en SQL?

Comment supprimer toutes les valeurs d'un champs multi-valué ?
auteur :Christophe Warin
Soit la table suivante :

  • NumChauffeur : NuméroAuto
  • NomChauffeur : Texte(20)
  • PrenomChauffeur : Texte(20)
  • PermisChauffeur : Texte(1) - Liste de choix de valeurs : A;B;C;D;E - Valeurs multiples autorisées

Cette exemple va supprimer l'ensemble des permis du chauffeur n°2
DELETE PermisChauffeur.Value 
FROM  tbl_chauffeur
WHERE numChauffeur=2
lien : faq Comment supprimer une valeur d'un champs multi-valué ?
lien : faq Comment supprimer toutes les valeurs d'un champs multi-valué en VBA ?
lien : faq Comment supprimer une valeur d'un champs multi-valué en VBA ?

Comment supprimer une valeur d'un champs multi-valué ?
auteur :Christophe Warin
Soit la table suivante :

  • NumChauffeur : NuméroAuto
  • NomChauffeur : Texte(20)
  • PrenomChauffeur : Texte(20)
  • PermisChauffeur : Texte(1) - Liste de choix de valeurs : A;B;C;D;E - Valeurs multiples autorisées

Cette exemple va supprimer le permis D du chauffeur n°1
DELETE PermisChauffeur.Value
FROM tbl_chauffeur
WHERE numChauffeur=1 AND PermisChauffeur.Value="D"
lien : faq Comment supprimer toutes les valeurs d'un champs multi-valué ?
lien : faq Comment supprimer une valeur d'un champs multi-valué en VBA ?
lien : faq Comment supprimer toutes les valeurs d'un champs multi-valué en VBA ?

Est il possible de créer un nouvel enregistrement avec un champ multi-valué en SQL ?
auteur :Christophe Warin
Non, il n'est pas possible de créer une requête INSERT INTO avec dans la liste des champs un champ de type multi-valué.

Par exemple, cette requête n'est pas valide
INSERT INTO tbl_chauffeur (NomChauffeur,PrenomChauffeur,PermisChauffeur)
VALUES ("HEUR","Marc",(SELECT PermisChauffeur FROM Chauffeur WHERE numChauffeur=2))
Elle aurait pourtant servi à dupliquer les permis du chauffeur n°2

La seule solution est de créer l'enregistrement sans le champ multi-valué.

lien : faq Comment créer un champ à valeurs multiples de type 'Table/requête' ?
lien : faq Comment créer un champ à valeurs multiples de type 'Table/requête' ?

Est il possible d'insérer une valeur dans un champs multi valué en SQL ?
auteur :Christophe Warin
Tout comme il est impossible de créer un enregistrement en fixant le champ multi-valué, il est impossible d'ajouter une valeur à ce champ. En effet les requêtes INSERT INTO refusent cette fonctionnalité.

Solution : passer par VBA

lien : faq Comment ajouter une valeur d'un champs multi-valué en VBA ?

rechercher
precedent    sommaire    suivant    telecharger

Consultez les autres F.A.Q's


Valid XHTML 1.1!Valid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2006 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.