Création d'une requête SQL

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Création d'une requête SQL

Re: Création d'une requête SQL

par moogli » 02 févr. 2012, 16:20

la le mieux c'est de comprendre ce qu'est une procédure stockée afin de faire les choses correctement.

Globalement c'est un peu comme une fonction en php (même s'il existe aussi des fonctions en SQL).

un article sur les procédures stockées =>http://sqlpro.developpez.com/cours/sqlaz/techniques/#L6

en gros ta procédure stockée sera ainsi
- un select (le mieux la c'est de récupérer la préfecture avec une jointure), il s'agit d'un curseur
- Itération sur chaque éléments du 1er point, pour chaque tu récupère type et nombre avec la fonction substr et tu insère dans la table 3
- la date courante peux s'obtenir avec now(), current_date, curdate(), sysdate

la par contre ça va traiter toute la table T2 il va donc falloir que tu vérifier les données afin de savoir si la ligne à déjà était traitée afin de ne pas avoir un doublon dans T3.

@+

Re: Création d'une requête SQL

par helene75 » 02 févr. 2012, 16:00

Enfin de compte c'est une procédure que je dois faire une seule fois par contre cette procédure peut être réutiliser par la suite

As-tu une idée sur l'écriture de cette requête car pour moi c'est du tout nouveau pour moi

Je suppose que c'est à partir d'un insert que je dois le faire mais après ça ce corse

En te remerciant par avance

Re: Création d'une requête SQL

par moogli » 02 févr. 2012, 15:51

S'il s'agit d'une chose à faire une fois (j'en doute ?) tu peux faire un sélect sur la table 2 (avec jointure sur table 1) et le traiter en php.

Si c'est à faire au fur et à mesure des infos fournit utilisé une procédure stockée sur le sgbd.


@+

Re: Création d'une requête SQL

par helene75 » 02 févr. 2012, 15:43

Ce que je veux faire c'est de créer ma TABLE3 à partir d'élément contenu dans la TABLE1 et 2

Résultat de ma TABLE3

Code : Tout sélectionner

VILLE | DPT | JOUDATE | TYPE | NBRE | REFER PARIS | 75 | VENDREDI 21 NOVEMBRE 2011 | LP | 15 | 1589
La Table1 est une table de référence qui contient les départements et les villes associées

La Table2 est une table que je récupère à partir d'un traitement l'ambda

La table1 de référence me sert uniquement pour associer la ville au département de table2 et de l'insérer dans table3

Le reste des insertions est faites à partir de table2

Il me faut faire cette procédure en SQL
Es-ce qu'il vous faut d'autre élément pour faire cette requête?

Re: Création d'une requête SQL

par moogli » 02 févr. 2012, 15:30

Salut,

Ta base ne semble pas normalisée ça va pas aider à l'utilisation ;)

Le plus simple c'est de reprendre les clef primaire des autres tables dans ta tabesi t a besoi d'une référence afi. De respecter l'unicité de l'information.

Après si tu a besoin de portion d'info de deux tableS soit tu le fait en php. Donc avec de multiple sélect pour avoir les infos.
Soit tu le fait sur le serveur avec une procédure stockée.

Après je n'ai pas compris exactement ce que tu veux faire mais globalement une procédure stockée devrais résoudre ton soucis ;)


@+

Création d'une requête SQL

par helene75 » 02 févr. 2012, 15:04

Bonjour,

J'ai besoin de mettre en place une requête qui puisse insérer une ligne dans le table TABLE3 à partir de 2 autres tables TABLE1 et TABLE2

Comment générer la ligne de TABLE3 à partir d'une requête

Ma table1
DPT | VLLE
75 | PARIS
78 | VERSAILLES
72 | LE MANS
[...]

Ma table2
DPT | NOM | NBRE | REFER
75 | DUPOND | LP15 | 1589

Ma table3 Résultat de la ligne que je dois insérer
VLLE | DPT | JOUDATE | TYPE | NBRE | REFER
PARIS | 75 | VENDREDI 21 NOVEMBRE 2011 | LP | 15 | 1589

Pour l'insertion des valeurs en colonnes TYPE et NBR en TABLE3 je dois partir de la colonne NBRE de TABLE2 et extraire le LP puis le 15 et l'insérer dans TYPE et NBRE de TABLE3
Pour la colonne VLLE de TABLE3 je dois faire une comparaison de la colonne DPT de TABLE2 avec la colonne DPT de TABLE1 et suivant égalité insérer la ville en colonne VLLE dans TABLE3 et LA valeur DPT correspondante en colonne DPT de TABLE3

Est-il possible de générer dans la même requête la date dans la colonne JOURDATE

Es-ce que quelqu'un peu me donner un coup de pouce pour mettre en place cette requête en sachent que je suis novice sur ce sujet