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

Requêtes et SQL. Discussion :

Numérotation ligne requête sans clé


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    décembre 2011
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : décembre 2011
    Messages : 204
    Points : 71
    Points
    71
    Par défaut Numérotation ligne requête sans clé
    Bonjour,

    je sais que ce sujet a déjà été traité à de multiple reprises mais aucune des solutions (DCount ou sous-requête) ne répond à ma problématique

    je dois extraire des données à plats (excel) à partir d'un vielle base Oracle version 7
    certains exports comporteront près de 2 millions de lignes et je suis donc limité par Excel 97 qui ne prend que 65 536 lignes par feuilles
    il va donc falloir que j'exporte en 'fractionnant' l'export sur plusieurs feuilles du fichier excel
    pour ce faire, je dois exécuter ma requête par 'paquets' de 65 534 enregistrements et j'ai donc besoin d'un compteur de ligne pour ma requête
    mon problème est que je n'ai pas de clé unique d'identification d'un enregistrement (fichier à plat) sur laquelle appliquée l'une des méthodes citées plus haut

    j'ai pensé à créer une table à partir de ma requête en ajoutant une colonne avec un numéro auto mais étant donné le nombre d'enregistrement je ne suis pas sûr que ce soit une bonne solution
    en tout cas je voudrais explorer d'autre solutions et recueillir vos conseils...

    d'avance merci pour votre aide

  2. #2
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    décembre 2011
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : décembre 2011
    Messages : 204
    Points : 71
    Points
    71
    Par défaut
    A défaut de mieux pour le moment, j'essaie DCount
    le champ sur lequel j'effectue le DCount est à priori unique mais certains champs sont vides
    du coup, je pense que c'est pour çà que certains ROWNUM contiennent #Erreur

    je sais pas comment traiter ces cas : j'ai essayé avec IIF, NZ mais sans succès
    j'utilise CInt pour transtyper le ROWNUM car je suppose que le fait d'avoir des erreurs fait que les autres données sont afficher en type String...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT 
    Cint(DCount("ANAT_TABPREALABLE_SPECIALITE.SPECIALITE_ID","ANAT_TABPREALABLE_SPECIALITE","ANAT_TABPREALABLE_SPECIALITE.SPECIALITE_ID <=" & ANAT_TABPREALABLE_SPECIALITE.SPECIALITE_ID)) AS ROWNUM, ANAT_TABNUMERO_DOSSIER.ND_N_IDPATIENT, ANAT_TABNUMERO_DOSSIER.ND_T_NUM_DOSSIER, ANAT_TABNUMERO_DOSSIER.ND_T_NOM, ANAT_TABNUMERO_DOSSIER.ND_T_PRENOM, ANAT_TABNUMERO_DOSSIER.ND_N_SEXE, ANAT_TABNUMERO_DOSSIER.ND_D_DATE_NAISS, ANAT_TABNUMERO_DOSSIER.ND_T_IPUM, ANAT_TABPREALABLE_SPECIALITE.N_AGE, ANAT_TABPREALABLE_SPECIALITE.D_DATE_EXAMEN, ANAT_TABPREALABLE_SPECIALITE.T_NUM_EXAMEN, ANAT_T_HOSPITALISE.T_LIBELLE AS T_TYPE_HOSPI, ANAT_TABPREALABLE_SPECIALITE.T_DEMANDEUR, ANAT_TABPREALABLE_SPECIALITE.T_NOM_DEMANDEUR, ANAT_TABPREALABLE_SPECIALITE.T_ADR1, ANAT_TABPREALABLE_SPECIALITE.T_ADR2, ANAT_TABPREALABLE_SPECIALITE.T_CP, ANAT_TABPREALABLE_SPECIALITE.T_VILLE, ANAT_TABPREALABLE_SPECIALITE.T_EXAMEN_DIRECT, ANAT_TABPREALABLE_SPECIALITE.T_RENS, ANAT_TABPREALABLE_SPECIALITE.T_DENS_OD, ANAT_TABPREALABLE_SPECIALITE.T_DENS_OG, ANAT_TABPREALABLE_SPECIALITE.T_PHOTO_OD, ANAT_TABPREALABLE_SPECIALITE.T_PHOTO_OG, ANAT_T_GOUTTES.T_LIBELLE AS T_GOUTTE, ANAT_TABPREALABLE_SPECIALITE.T_NOM_PHOTO_OD, ANAT_TABPREALABLE_SPECIALITE.T_NOM_PHOTO_OG, ANAT_TABPREALABLE_SPECIALITE.T_EXAMEN, ANAT_TABPREALABLE_SPECIALITE.T_CONCLU, ANAT_TABPREALABLE_SPECIALITE.T_COTATION, ANAT_TABPREALABLE_SPECIALITE.T_PRN_DEMANDEUR, ANAT_TABPREALABLE_SPECIALITE.T_EXAM_ANTERIEUR, ANAT_TABPREALABLE_SPECIALITE.T_DS_OD, ANAT_TABPREALABLE_SPECIALITE.T_DS_OG, ANAT_TABPREALABLE_SPECIALITE.T_SURF_CM_OD, ANAT_TABPREALABLE_SPECIALITE.T_SURF_CM_OG, ANAT_TABPREALABLE_SPECIALITE.T_CV_OD, ANAT_TABPREALABLE_SPECIALITE.T_CV_OG, ANAT_TABPREALABLE_SPECIALITE.T_POLIT
    FROM ((ANAT_TABNUMERO_DOSSIER LEFT JOIN (ANAT_TABSPECIALITE_VENUE LEFT JOIN ANAT_TABPREALABLE_SPECIALITE ON ANAT_TABSPECIALITE_VENUE.SPECIALITE_ID = ANAT_TABPREALABLE_SPECIALITE.SPECIALITE_ID) ON ANAT_TABNUMERO_DOSSIER.ND_N_IDPATIENT = ANAT_TABSPECIALITE_VENUE.SV_N_IDPATIENT) LEFT JOIN ANAT_T_HOSPITALISE ON ANAT_TABPREALABLE_SPECIALITE.T_TYPE_HOSPI = ANAT_T_HOSPITALISE.T_CODE) LEFT JOIN ANAT_T_GOUTTES ON ANAT_TABPREALABLE_SPECIALITE.T_GOUTTES = ANAT_T_GOUTTES.T_CODE;

  3. #3
    Membre expérimenté Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    novembre 2013
    Messages
    1 008
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : novembre 2013
    Messages : 1 008
    Points : 1 535
    Points
    1 535
    Par défaut
    En important les feuilles XL, utiliser l'option "Append to existing table"; ainsi tu peux éviter l'utilisation d'un champ supplémentaire.

  4. #4
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    décembre 2011
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : décembre 2011
    Messages : 204
    Points : 71
    Points
    71
    Par défaut
    Bonjour Zekraoui_Jakani

    je ne comprends pas ton post?

  5. #5
    Membre expérimenté Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    novembre 2013
    Messages
    1 008
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : novembre 2013
    Messages : 1 008
    Points : 1 535
    Points
    1 535
    Par défaut
    Au lieu d'exporter au départ de XL, ouvre Access et importe les feuilles dans une table que tu auras créée au préalable, et utiliser l'option "Append to existing table"; Ceci va permettre d'ajouter les lignes additionnelles au bon endroit. A faire manuellement pour chaque feuille; il y a moyen d'automatiser la tâche (mais c'est une autre discussion; voir forum VBA).

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    octobre 2005
    Messages
    13 602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : octobre 2005
    Messages : 13 602
    Points : 20 591
    Points
    20 591
    Par défaut
    Bonjour.

    Je ne sais pas si tu peux jouer du côté Oracle mais il me semble que toutes les tables Oracle ont un identifiant unique de ligne intrene (ROWID je crois) que tu pourrais peut-être récupérer. Cela pourrait être alors ta clef unique.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

Discussions similaires

  1. [AC-2010] Requête access numéroter lignes
    Par John Parker dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 09/10/2014, 09h39
  2. requête sans prendre en compte la casse
    Par clems34 dans le forum PostgreSQL
    Réponses: 13
    Dernier message: 13/04/2009, 17h50
  3. [Requête] numérotation ligne
    Par dde78 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 06/06/2007, 09h45
  4. Réponses: 6
    Dernier message: 09/06/2006, 19h22
  5. Tracer une ligne droite sans les interruptions
    Par Stef784ever dans le forum x86 16-bits
    Réponses: 4
    Dernier message: 25/11/2002, 02h22

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