IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Modélisation Discussion :

Incrément et sous-requête ? [AC-2003]


Sujet :

Modélisation

  1. #61
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour,

    Donc, maintenant, la règle du jeu est définie.

    Il apparaît, à l'étude de celle-ci, qu'il y a un choix à faire :
    • une table "fourre-tout" dans laquelle les séquences (num et ex) sont gérées par du code (c'est ce que tu as analysé, Brankorri, avec la présentation de ta table). Il s'agirait, en fait, d'un mega fichier Excel ;
    • une base de données multi-entités (multi-tables, donc).

    Si tu prends la première solution, le fil sera terminé avec la fourniture du code permettant de numéroter "numero" et "exemplaire" selon la règle du jeu.

    La seconde solution fait apparaître plusieurs entités (plusieurs tables, donc) :
    Table AUTEUR :
    Id_auteur (clé primaire)
    nom
    etc...
    Table LIVRE :
    Id_livre (clé primaire)
    titre
    Type
    Langue
    Theme
    Code
    etc...
    ==> En effet, Q (Type/Langue/Theme/Code), se situe au niveau LIVRE.
    Table AUTEUR_LIVRE :
    Id_liaison (clé primaire)
    Id_auteur
    Id_livre
    ==> Id_auteur/Id_livre : index unique.
    Table LIVRE_STOCKE :
    Id_livre_stocke (clé primaire)
    Id_livre
    Date_arrivee (par exemple)

    Avec, pour relations :
    AUTEUR 1--->N AUTEUR_LIVRE, via Id_auteur
    LIVRE 1--->N AUTEUR_LIVRE, via Id_livre
    ==> En effet, un livre peut avoir plusieurs auteurs, donc relation AUTEUR N<--->N LIVRE gérée, obligatoirement, par une table de laison.
    LIVRE 1--->N LIVRE_STOCKE, via Id_livre

    Le "numero" (num) n'a, peut-être, pas besoin d'être stocké car :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Type,Langue,Theme,Code, count(*) FROM LIVRE
    GROUP BY Type,Langue,Theme,Code
    '==> te donne le nombre de LIVRE pour chaque Type/Langue/Theme/Code existant.

    L' "exemplaire" (ex) n'a, peut-être, pas besoin d'être stocké car :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Id_livre, count(*) FROM LIVRE_STOCKE GROUP BY Id_livre
    '==> te donne le nombre d"exemplaire pour chaque Id_livre existant.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  2. #62
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,

    Clin d’œil amical à f-leb, s’il suit encore.
    Finalement tout était dans le post 1 de cette discussion et tu n’avais pas compris !

    Dans le fichier joint, j’ai essayé d’inclure toutes les demandes jusqu’au post 60.
    Voir les codes modifiés.
    Dans le formulaire fSimplifie, les contrôles en vert sont verrouillés : alimentés par le système. Ceux en rose ne sont, pour l’instant, pas considérés.

    Le jeu de test est celui utilisé pour les échanges lors de la mise au point.
    Merci de confirmer que OK.

    -------------------------------------------
    Ensuite :
    Dans la fenêtre Access, copiez la table Cotation2010 ---> Nommez la copie « DonneesRichard »
    Supprimez la table Cotation2010.
    Renommez la table « DonneesBranKorri en Cotation2010
    Ouvrez le formulaire et testez chacun des boutons
    1° Renuméroter prend quelques minutes, si le principe de la solution est retenu, j’essaierai d’optimiser. C'est la supression des accents qui est en cause.
    Vérifiez dans la table que cela semble bon. 178 et 200, maintenant OK.
    2° Faites défiler les anomalies. Notez leur nombre.
    3° corrigez les lacunes d’une anomalie.
    4° clic sur Ajout / recalcul ---> l’enregistrement s’intègre « naturellement » dans l’ensemble des enregistrements corrects. Pour le vérifier : cliquez sur le bouton Voir tous les enregistrements et ensuite Voir anomalies ---> il y en a une de moins.
    ------------------------



    Remarques en vrac :
    J’évite en général d’utiliser du caractère italique dans les formulaires (difficultés à lire)
    Pour bénéficier du même compresseur que le mien : Outils/Options/onglet Général ---> cocher « compacter lors de la fermeture.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  3. #63
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Claude, Brankorri (et f-leb),

    Les fonctions fonctionnent parfaitement suivant la règle du jeu définie au post #56 (post #57, en français) : félicitations Claude ! et, effectivement, ne nombre de lignes de programme est faible.

    Brankorri, il semble que tu disposes, maintenant, de toutes les fonctions qui te sont nécessaires (et que tu pourras adapter et placer dans les formulaires que, peut-être, tu créeras).

    Ceci résoud la partie "fourre-tout" mono-table de la solution que tu souhaitais.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  4. #64
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 621
    Points : 56 867
    Points
    56 867
    Billets dans le blog
    40
    Par défaut
    bonsoir,

    Citation Envoyé par ClaudeLELOUP Voir le message
    Clin d’œil amical à f-leb, s’il suit encore.
    Finalement tout était dans le post 1 de cette discussion et tu n’avais pas compris !
    gniiiiiiiii J'avais parfaitement compris mais j'ai préféré vous laissez mariner une soixantaine de posts toi et Richard.

    Vous me ferez quand même un résumé les gars hein ? Je crois que j'ai un peu décroché à un moment...
    (c'était au post #2 je crois)

  5. #65
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bienvenue f-leb...

    Pas de problème pour le résumé... simple de ces 60 posts.

    Amicalement.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  6. #66
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 134
    Points : 53
    Points
    53
    Par défaut
    Bonsoir à tous !

    Les jours filent, le travail pratique avance et je ne retrouve qu'à présent le temps de venir consulter assidument vos propositions.
    Je vais tacher de me plonger dès à présent dans tout et vous en tiens informés aussitôt que possible.

    A mon clavier ! (merci beaucoup)

  7. #67
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 134
    Points : 53
    Points
    53
    Par défaut
    Bonjour à tous,

    Claude, toutes mes félicitations, c'est tout-à-fait ce que je recherchais vainement à développer...
    Cependant, des bugs apparaissent lorsque je tente de développer vers ma base complète : alors que les ouvrages ne comportent pas tous encore de Q, le Rattrapage refuse d'offrir les Num & Exp depuis le formulaire.

    Qu'ai-je à faire moi-même ? (outre la mise aux normes des simplifications de caractères spéciaux)

    Bon après-midi !

  8. #68
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Remplace le sql de la requête rParam par celui-ci qui traite le manque éventuel d'un titre et/ou d'un auteur :
    -------copie ce qui suit-------------------------------------------
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT Cotation2010.CP, 
    "|" & Trim([type]) & "|" & Trim([langue]) & "|" & Trim([Theme]) & "|" & Trim(['code]) & "|" AS Quadru, 
    IIf(InStr([quadru],"||")=0,"OK","NOK") AS QuadruOK, 
    Cotation2010.Numero, 
    Cotation2010.Exemplaire, 
    SansSigne(nz([Auteur],"AuteurManque")) & SansSigne(nz([Titre],"TitreManque")) AS Couple
     
    FROM Cotation2010;
    ---------et colle-le à la place du sql actuel de la rParam ------------

    NB les balises ne réagissent pas correctement dans ce cas-ci !
    Edit : l'explication dans le post suivant.
    preuve :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Cotation2010.CP, "|" & Trim([type]) & "|" & Trim([langue]) & "|" & Trim([Theme]) & "|" & Trim(['code]) & "|" AS Quadru, IIf(InStr([quadru],"||")=0,"OK","NOK") AS QuadruOK, Cotation2010.Numero, Cotation2010.Exemplaire, SansSigne(nz([Auteur],"AuteurManque")) & SansSigne(nz([Titre],"TitreManque")) AS Couple
    FROM Cotation2010;
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  9. #69
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour à tous,

    En annexe, il semble que ce soit la chaîne de caractères
    [code]
    de
    Trim([code])
    qui embrouille l'éditeur de message car
    [code]
    est considéré comme une balise.

    En remplaçant Trim([code]) par Trim([code_]), tout est OK.

    Mais bon, c'était juste pour le fun...
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  10. #70
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 134
    Points : 53
    Points
    53
    Par défaut
    Bonsoir, ou plutôt Bon matin à tous,

    Le SQL a été correctement repris, merci Claude. Richard, mention plus pour ton attentive attention !
    Pour notre sujet : il reste que, après clic sur le bouton RATTRAPAGE en Formulaire, la machine mouline plus d'une quinzaine de minutes sans aboutir. J'essaierai encore demain de faire mouliner sur le pc du boulot : penser à poser des heures supp d'avance...

    Une idée ?

    Bonne journée !

  11. #71
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,

    Cela n'a rien d'étonnant. C'est la fonction "SansSigne" qui est sollicitée des millions de fois.
    S'il s'avère que "Rattrapage" est nécessaire en régime de croisière, je chercherai un moyen d'optimiser.

    La piste : au lieu de passer par la requête rParam, il faudrait :
    - calculer les paramètres de l'existant et les stocker en "dur" (par exemple dans la table)
    - [re]calculer au fur et à mesure pour les nouveaux et les modif.

    Pour 200 postes, cela demande chez moi 3 ou 4 minutes.
    A noter que la durée n'est pas une fonction linéaire du nombre de postes. Plus il y a de postes dans la table, plus long est le calcul de chaque poste.

    Quel est l'ordre de grandeur du nombre d'ouvrages ?
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  12. #72
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 134
    Points : 53
    Points
    53
    Par défaut
    Bonjour,

    Il y a plus de 6000entrées. J'ai essayé avec 4000 (env) : en lançant le rattrapage à 10h20 ce matin, et ça mouline toujours...

    Je reste suspendu comme un ver à l'hameçon !

  13. #73
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 134
    Points : 53
    Points
    53
    Par défaut
    12h49 : le RATTRAPAGE vient de s'arrêter.
    Message :

    Erreur d'exécution '3075':
    Erreur de syntaxe (opérateur absent) dans l'expression 'numer<>0 and Quadru = "|||||" and
    Couple:"blabla"blabla"".


    En cliquant sur débogage, apparaissent comme concernées les lignes suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If DCount("*", "rParam", _
                     "numero<>0 and Quadru = """ _
                     & sQuadru & """ and Couple=""" _
                     & sCouple & """") > 0 Then       'OUI -->  N° est celui de ce couple

  14. #74
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,
    Si ta table n'est pas confidentielle, tu peux me l'envoyer à mon adresse mail.
    Je vais tester.
    MP pour adresse.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  15. #75
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,

    voici une version du rattrapage optimisée

    pour 7000 enregitrements :
    début : 16:13:35
    Fin : 16:19:17

    La structure de la table est modifiée : ajout de 2 nouveaux champs.

    A bientôt.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  16. #76
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Fabien, Claude et Brankorri (enfin ceux qui suivent encore...),

    Juste pour tenir une promesse (ancienne) faite à Fabien...

    Brankorri a donc choisi l'option mono-table (comme un méga fichier Excel) dont les séquences ("numero" et "exemplaire") sont gérées par "the Claude's code".


    Donc, en bref :
    • si Auteur/Livre existe, alors num=numéro existant de Auteur/Livre et ex=MAX(ex(Auteur/Livre)) + 1 ;
    • si Auteur/Livre n'existe pas, alors num=MAX(num(Quatuor)) + 1 et ex=1.


    Autrement dit (en français), si on ajoute un livre d'un auteur :
    • si ce livre de cet auteut existe, alors cela veut dire que l'on veut ajouter un exemplaire de ce livre de cet auteur, sans changer ses attributs (Quatuor).
    • si ce livre de cet auteur n'existe pas, alors il s'agit du premier exemplaire ; d'autre part, si ses attributs (Quatuor) existe, alors il s'agit du prochain numéro de cet attribut (num) tous livres/auteurs confondus.


    Vu ?
    J'ai les noms de ceux qui ne suivent pas...
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  17. #77
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,

    Brankorri a donc choisi l'option mono-table (comme un méga fichier Excel) dont les séquences ("numero" et "exemplaire") sont gérées par "the Claude's code".
    ...et il ne s'en remet pas, il reste bouche bée.

    Dommage, il mettait de l'ambiance.

    Que d'énergie pour une fin aussi brutale.

    Bah, c'est encore plus beau lorsque c'est inutile !
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  18. #78
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 621
    Points : 56 867
    Points
    56 867
    Billets dans le blog
    40
    Par défaut
    Citation Envoyé par Richard_35 Voir le message
    Vu ?
    J'ai les noms de ceux qui ne suivent pas...
    hein quoi !! Si si m'sieur je suivais, je vous assure hein

  19. #79
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 134
    Points : 53
    Points
    53
    Par défaut A la poursuite de la Table infernale (1)
    Bonjour à Tous,

    Il est 00h05 et je reprends cette Bdd entre les dents, et tout va bien !

    Enfin presque : the Claude's Code est si lourd pour la machine du Centre (plus de 30min à présent) que je me suis attelé à une reconstruction.

    J'ai tout repris à zéro parce que je n'y voyais plus rien.

    Et j'ai trouvé une autre voie, qui chemine et aboutit presque. Mais elle n'aboutit pas complètement. Comment ça, "étonnant" ?!

    Allez ! Je vous présente le topo : j'ai repris à zéro, avec la table présentée en concorde avec Richard & Claude (25/11/2010, 21h32)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Musset  - La vie       : a-b-b-MUS => num=1 - ex=1
    Musigny - La nature    : a-b-b-MUS => num=2 - ex=1
    Musigny - La nature    : a-b-b-MUS => num=2 - ex=2
    Musigny - La nature    : a-b-b-MUS => num=2 - ex=3
    Musset  - Gloria       : a-b-b-MUS => num=3 - ex=1
    Musset  - Gloria       : a-b-b-MUS => num=3 - ex=2
    Musset  - Gloria       : a-b-b-MUS => num=3 - ex=3
    Musso   - Le froid     : a-b-b-MUS => num=4 - ex=1
    Musteo  - La joie      : a-b-b-MUS => num=5 - ex=1
    Mustel  - Vereinigung  : a-d-b-MUS => num=1 - ex=1
    Musrob  - Le trottoir  : a-d-b-MUS => num=2 - ex=1
    Musard  - En clair     : a-b-c-MUS => num=1 - ex=1
    Marat   - Ma baignoire : a-b-b-MAR => num=1 - ex=1
    Fin de l'étape 0 -

  20. #80
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 134
    Points : 53
    Points
    53
    Par défaut A la poursuite de la Table infernale (2)
    Et donc la Table (mono, pour vous plaire... et parce que ne maîtrisant pas vraiment à merveille les joies de la jointure) se paramètre ainsi :

    CPO (clef primaire) / NumAuto => Incrément
    Titre / Texte
    Auteur / Texte
    Enregistrement / Date/heure => Date, général / Maintenant ()
    D (càd Discipline) / Texte
    P (càd Peuple) / Texte
    T (càd Thème) / Texte
    A (càd 3 premières lettres de l'Auteur ou du Titre) / Texte
    Voilà pour la fondation en Table intitulée Fonds.

    Fin de l'étape 1 -

    *****

    A présent, je veux réunir les colonnes D-P-T-A afin d'obtenir une COTE maniable. De même avec les colonnes Titre & Auteur pour désigner le LIVRE.

    Donc je créé une REQUETE nommée Concat pour, vous l'avez deviné : concaténation...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Fonds.CPO, Fonds.Enregistrement, Fonds.Titre, Fonds.Auteur, [Titre] & "-" & [Auteur] AS Livre, Fonds.D, Fonds.P, Fonds.T, Fonds.A, [D] & " " & [P] & " " & [T] & " " & [A] AS Cote
    FROM Fonds
    ORDER BY Fonds.Livre, Fonds.CPO;
    On a donc :
    -> Titre+Auteur = Livre
    -> D+P+T+A = Cote

    Fin de l'étape 2 -

    *****

    A présent, je veux déterminer quel numéro porte tel exemplaire parmi les LIVREs identiques : je crée une nouvelle REQUETE nommée *CompteExemplairesNuméro.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Concat.Livre, Concat.Cote, Concat.CPO, Concat.Titre, Concat.Auteur, Concat.Enregistrement, (SELECT COUNT(Concat.Livre) FROM ConcatLivre AS B WHERE B.Livre=Concat.Livre AND B.CPO<=Concat.CPO) AS NumeroS
    FROM ConcatLivre
    ORDER BY Concat.Livre, Concat.CPO;
    Alors, les Numéros collent avec ce qui est recherché dans la colonne EX de l'exemple (non ?).

    => On peut aussi déterminer le nombre de LIVREs identiques, avec par exemple une REQUETE *CompteExemplairesTotal:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Concat.Livre, Concat.CPO, Concat.Titre, Concat.Auteur, (SELECT COUNT (Concat.Livre) FROM ConcatAS B Where B.Livre=Concat.Livre) AS TotalS
    FROM ConcatINNER JOIN Fonds ON Concat.CPO=Fonds.CPO
    ORDER BY Concat.Livre, Concat.CPO;
    Fin de l'étape 3 -

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MFC] [API mySQL] Sous requêtes
    Par Guybrush113 dans le forum MFC
    Réponses: 5
    Dernier message: 29/04/2004, 16h14
  2. Problème DBExpress et sous requêtes ???
    Par Trulane dans le forum Bases de données
    Réponses: 5
    Dernier message: 26/03/2004, 14h40
  3. Requêtes et sous requêtes
    Par lau2nyce dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/03/2004, 15h14
  4. suppression avec sous requête conditionnelle
    Par melmel dans le forum Requêtes
    Réponses: 8
    Dernier message: 18/03/2004, 23h20
  5. Réponses: 3
    Dernier message: 18/05/2003, 00h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo