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

SQL Oracle Discussion :

une requête d'eclatement


Sujet :

SQL Oracle

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 112
    Points : 35
    Points
    35
    Par défaut une requête d'eclatement
    bonjour, voila mon problème :
    je travaille sur une base de données routière,je dois concevoir un script ou une requête sql qui fait le traitement suivant:
    pour une section de kilomètre par exemple du point kilométrique 10 au point kilométrique 20,l'algorithme doit décomposer cette section en kilomètre de pas de 1km par exemple :de 10 à 11 et de 11 à 12...
    ensuite on doit l'insérer dans une nouvelle table en gardant les données relatives à chaque kilomètre.
    aidez moi svp c urgent

  2. #2
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    Oui mais sur quoi doit se baser l'algorithme?
    Une table ? Si oui, quelle est sa structure ?
    Garuda गरूड
    Brahmâ la Guerre et Vishnu la Paix

    Oracle 12C R2 - Forms11GR2 - Toad 12 - sharePoint 2010

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 112
    Points : 35
    Points
    35
    Par défaut une requête d'eclatement
    l'algorithme doit récupérer les données d'un tableau excel.

  4. #4
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    Alors, c'est pas plutot sur le forum EXCEL que tu devrais poster ?
    Garuda गरूड
    Brahmâ la Guerre et Vishnu la Paix

    Oracle 12C R2 - Forms11GR2 - Toad 12 - sharePoint 2010

  5. #5
    Rédacteur
    Avatar de Bruno2r
    Homme Profil pro
    Exploitation des données
    Inscrit en
    Décembre 2006
    Messages
    2 566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Exploitation des données
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 566
    Points : 4 780
    Points
    4 780
    Par défaut provoquer un produit cartésien
    Bonjour,
    Soit une table ROUTE dotée d'un champ point kilométrique ROUTE.PKIL
    il suffit de faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    SELECT A.PKIL, A.PKIL+B.KM
    FROM 
    (SELECT 
    1 "KM" FROM dual
    UNION
    2 FROM dual
    UNION
    3 FROM dual
    UNION
    4 FROM dual
    UNION
    5 FROM dual
    UNION
    6 FROM dual
    UNION
    7 FROM dual
    UNION
    8 FROM dual
    UNION
    9 FROM dual
    ) B,
    ROUTE A;
    Bien entendu il suffit d'ajouter les autres champs de la table ROUTE
    Précisez la VERSION !
    Un message vous a aidé ? Votez en cliquant sur Pensez au bouton
    Tutoriels BO et FAQ BO
    "A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 112
    Points : 35
    Points
    35
    Par défaut req eclatemetn
    non je pense pas que c au forum excel , parce que je dois inserer ces données dans une base oracle 9i en plus je dois concevoir un script sql . c tt

  7. #7
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    Ben alors, bosse un peu !
    Crée d'abord d'abord une table ORACLE !
    Garuda गरूड
    Brahmâ la Guerre et Vishnu la Paix

    Oracle 12C R2 - Forms11GR2 - Toad 12 - sharePoint 2010

  8. #8
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 112
    Points : 35
    Points
    35
    Par défaut
    oui c'est deja creé

  9. #9
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    Il faut tou te dire ????
    Envoie LA STRUCTURE !!!
    Garuda गरूड
    Brahmâ la Guerre et Vishnu la Paix

    Oracle 12C R2 - Forms11GR2 - Toad 12 - sharePoint 2010

  10. #10
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 112
    Points : 35
    Points
    35
    Par défaut
    dans le tableau excel on a les colonnes suivantes:
    n°route
    pkd (point kilometrique debut)
    pkf(point kilometrique fin)
    et dans oracle on a la table bdr qui se compose des champs suivant:
    route_id
    pkd
    pkf
    a signaler :les pkd et les pkf sont en vrac(la difference entre pkd et pkf c'est plusieurs kilometres) ds excel et on doit les avoir en 1km dans la trable d' oracle

  11. #11
    Membre confirmé Avatar de chrifo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    444
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 444
    Points : 481
    Points
    481
    Par défaut
    Bonjour,
    Si ça peut aider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    SQL> SELECT version FROM v$instance
     
    VERSION          
    -----------------
    9.2.0.4.0        
     
    1 row selected.
    SQL> WITH ROUTE AS (
      SELECT 10 DEB, 20 FIN, 2 PAS, 'Commentaire du tronçon' COM FROM dual
      UNION SELECT 20, 40, 3, 'Autre commentaire' FROM dual
      )  
    SELECT DISTINCT DEB+PAS*(LEVEL-1) DEB, DEB+PAS*LEVEL FIN, COM FROM ROUTE CONNECT BY LEVEL<=(FIN-DEB)/PAS
     
           DEB        FIN COM                   
    ---------- ---------- ----------------------
            10         12 Commentaire du tronçon
            12         14 Commentaire du tronçon
            14         16 Commentaire du tronçon
            16         18 Commentaire du tronçon
            18         20 Commentaire du tronçon
            20         23 Autre commentaire     
            23         26 Autre commentaire     
            26         29 Autre commentaire     
            29         32 Autre commentaire     
            32         35 Autre commentaire     
            35         38 Autre commentaire     
     
    11 rows selected.
    Je penche, donc je suis

  12. #12
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    Tu peux utiliser PIPELINED
    Voir problème similaire
    http://www.developpez.net/forums/sho...d.php?t=380866

    ou fait une recherche avec "PIPE ROW"
    Garuda गरूड
    Brahmâ la Guerre et Vishnu la Paix

    Oracle 12C R2 - Forms11GR2 - Toad 12 - sharePoint 2010

  13. #13
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 112
    Points : 35
    Points
    35
    Par défaut
    je veux une explication de la méthode(réponse) décrite par chrifou

  14. #14
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 112
    Points : 35
    Points
    35
    Par défaut
    j'ai executé ce script mais il me donne qu'une seule ligne :



    WITH TEST1 AS (
    SELECT 10 DEB, 20 FIN, 1 PAS FROM TEST1

    )
    SELECT DISTINCT DEB+PAS*(LEVEL-1) DEB, DEB+PAS*LEVEL FIN FROM TEST1 CONNECT BY LEVEL<=(FIN-DEB)/PAS

  15. #15
    Membre confirmé Avatar de chrifo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    444
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 444
    Points : 481
    Points
    481
    Par défaut
    En fait la partie qui vous intéresse et que vous devez adapter est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT DEB+PAS*(LEVEL-1) DEB, DEB+PAS*LEVEL FIN FROM TEST1 CONNECT BY LEVEL<=(FIN-DEB)/PAS
    La notion utilisée est LEVEL, la doc Oracle vous l'expliquera beaucoup mieux que moi.

    Couplé avec le post que vous avez ouvert ici
    et qui devrait (jamais fait ...) vous permettre d'accéder à votre feuille excel via un dblink, vous devriez arriver à vos fins.



    NB :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    WITH TEST1 AS (
    SELECT 10 DEB, 20 FIN, 1 PAS FROM TEST1
     
    )
    SELECT DISTINCT DEB+PAS*(LEVEL-1) DEB, DEB+PAS*LEVEL FIN FROM TEST1 CONNECT BY LEVEL<=(FIN-DEB)/PAS
    ramène une erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    WITH TEST1 AS (
    SELECT 10 DEB, 20 FIN, 1 PAS FROM DUAL
    )
    SELECT DISTINCT DEB+PAS*(LEVEL-1) DEB, DEB+PAS*LEVEL FIN FROM TEST1 CONNECT BY LEVEL<=(FIN-DEB)/PAS
    est correcte (utilisation de la table sys.dual ...)
    Je penche, donc je suis

  16. #16
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 112
    Points : 35
    Points
    35
    Par défaut
    et comment inserer le resultat dans une autre table

  17. #17
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    Je ne sais pas pourquoi (un peu illisible) MAIS CA MARCHE EN 10 G (mais pas en 8i)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT DISTINCT level,deb +1  * (LEVEL - 1) deb, deb + 1 * LEVEL fin, com
               FROM (SELECT 10 deb, 20 fin ,'Commentaire du tronçon' com
                       FROM DUAL
                     UNION
                     SELECT 20, 40, 'Autre commentaire'
                       FROM DUAL)
         CONNECT BY LEVEL <= (fin - deb)
         order by 2
    Garuda गरूड
    Brahmâ la Guerre et Vishnu la Paix

    Oracle 12C R2 - Forms11GR2 - Toad 12 - sharePoint 2010

Discussions similaires

  1. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 18h38
  2. Problème sur une requête INSERT
    Par Marion dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/06/2003, 08h45
  3. problème sur une requête!!!!!
    Par Mcgrady_01 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/06/2003, 01h17
  4. Proposer le resultat d'une requête en téléchargement
    Par Lux interior dans le forum XMLRAD
    Réponses: 5
    Dernier message: 17/02/2003, 15h44
  5. [BDD] Enregistrer le résultat d'une requête
    Par Mowgly dans le forum C++Builder
    Réponses: 5
    Dernier message: 19/06/2002, 15h26

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