Aide SQL

Résolu
rem594 Messages postés 1 Date d'inscription vendredi 6 mars 2009 Statut Membre Dernière intervention 11 juin 2011 - 11 juin 2011 à 20:51
 Utilisateur anonyme - 22 juin 2011 à 16:53
Bonjour et merci d'avance pour votre aide,

Voici mon problème. Je lie 2 tables par l'intermédiaire d'une requête Sql. Mon objectif est de ramener certaines colonnes des 2 tables dans une table. Pour l'instant tout va bien.
Cependant, j'ai entre autres champs : Année, Mois et quantité_inventaire_final mon problème et que je voudrais ajouter une colonne nommée quantité_inventaire_début qui serait la quantité_inventaire_final du mois précédent.

Savez-vous comment je peux créer une nouvelle colonne dans laquelle mes données sont celle d'une autre colonne à un moment t-1 ?

Un grand grand merci aux personnes qui pourraient m'aider.

5 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
15 juin 2011 à 14:31
Je te déconseille de faire ca directement dans ta table parce que tu as une redondance d'information, mais, tu peux créer une vue


/*On recopie la table dans une vue*/
CREATE VIEW vue AS SELECT * FROM table;
/*On ajoute une colonne*/
ALTER VIEW vue add quantité_inventaire_début VARCHAR(10);/*je ne suis pas sur du type*/

/*On remplit la colonne*/
UPDATE vue
SET quantité_inventaire_début=(
    SELECT quantité_inventaire_final
    FROM table 
    WHERE vue.annee = table.annee
    AND vue.mois = table.mois-1
    )
3
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
15 juin 2011 à 14:32
Je ne peux pas tester, il y a peut être des erreurs mais le principe est là.
0
Utilisateur anonyme
21 juin 2011 à 00:32
Juste comme ça, j'éviterais de mettre des accents dans les noms de colonnes car ça peut donner des mauvaises surprises =/

Sinon si possible, utiliser le type VARCHAR2 au lieu du VARCHAR (je connais pas VARCHAR mais bon, dans le doute...)
Le VARCHAR2(10) prendre en compte les chaînes de taille 10 mais si elles sont plus courtes, la taille est la taille réelle (et non pas 10).

--
Pylouq.
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
21 juin 2011 à 08:17
Oui, il faut éviter les accents.

Par contre VARCHAR2 il me semble que ca ne marche qu'avec Oracle (à vérifier)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
22 juin 2011 à 16:53
Oups la boulette U_U

J'avais en tête qu'il utilisait Oracle en SGBD...Donc oui, les VARCHAR2 ne sont utilisables que chez Oracle...Quoique je me demande si sur MySQL y'a pas quand même (un petit doute sur le coup)


--
Pylouq
0
Rejoignez-nous