PDA

Voir la version complète : Manipulation d’une vu (sql)


kaninama
20/02/2007, 11h22
Bonjour tt le monde,

Alors la j’ai une autre question dans ce SQL (que je commence vraiment a adoré :mrgreen: )

Je veux pose mon problème :
Je dois faire un calcule sur quelque champ d’une seule table ou je dois diviser un nombre entier sur une colonne de ma table et ensuite le multiplier par un autre champs pour ensuite l’enregistrer dans un autre champ est tous ça dans la même table

J’ai une idée je sais que je peux créer une vue mais le pb c’est que je ne sais pas vraiment comment faire tt c’est calcule dans cette vue

Si quelqu’un peu m’aider ahhhhhhhh je lui dis mille mercis ;)

jawzia
20/02/2007, 16h00
Bon l’exemple est un peu farfelu mais c’est juste pour illustrer

Etudiant (NumE, Nom, Note1, Note2, coeff, Moy)
Si tu veux calculer la moyenne qui est donnée par Moy = (Note1*coeff1 + Note2*coeff)/(coeff1+coeff2)

Tu n’es pas obligée de passer par les vues. Un « Update » te suffit largement.
UPDATE Etudiant
SET Moy = (Note1*coeff1 + Note2*coeff)/(coeff1+coeff2)

Si tu veux utiliser les vues, la syntaxe est la suivante :
CREATE VIEW Table AS ( requite)

Ex:
CREATE VIEW EmpGen2 AS (
SELECT *
FROM EmpGen
WHERE Dept = 5)

Toutes les informations concernant les employés du département 5 (on crée donc une sous-relation).

kaninama
20/02/2007, 16h34
coucou jawzia sans toi je ne sais ce que je pourrai faire :mrgreen:

Justement jawzia j'ai essayer le update mais sa marche pas je ne sais pas pourquoi je te donne la requête (j'utilise du java et je me connecte a cette base de donnée)

String reqt4="UPDATE matable SET col3=col3+(R/col2) ";

le R c'est un entier qui est calculer a partir de mon programme et sa marche pas :22:

c'est pour j'ai eu l'idée des vue

ie:juste une petite question comment on calcule le log avec du SQL?

juste pour toi jawzia :4::4:

jawzia
20/02/2007, 16h57
Sql offre des fonctions prédéfinies, les fameux agrégats (Max, Min, Avg, sum...) mais point de log. Tu seras obligée de le faire en externe.

Pour revenir à la requete, il y a une ambiguite que Le SGBD n'arrive pas à lever. Ton fameux R est naturellement considéré comme un attritut de "Matable". il va consulter le DD et s'apercevoir qu'un tel attribut n'existe pas. Il faut donc indiquer que c'est plutot une variable. En Php, une telle ambiguité est levée par l'utilisation du symbole "$".

kaninama
20/02/2007, 16h59
et voila c'est ce que je pensai je viens d'essayer cette requête sans ce R et la requête marche très bien donc sûrement le pb viens de cette variable qui hors la base de donnée :22:

kaninama
20/02/2007, 17h07
que c'est plutot une variable. En Php, une telle ambiguité est levée par l'utilisation du symbole "$".

oui oui c'est bien fait jawzia je le sais mais je l'ai juste oublier lors de l'envoie de mon message mais malgré sa marche pas le $ c'est pour le php on java voila la requete

String reqt="UPDATE matable SET nombre=nombre+"+N+";

Je n’arrive vraiment pas a détecté l’anomalie :22:

jawzia
20/02/2007, 17h19
C'est quoi le message d'erreur ?

kaninama
24/02/2007, 13h29
Désolé jawzia pour ce retard en fait je n’avais pas de connexion
Merci pour tes réponse mais le pb et je ne sais pas la cause il fallais juste fermé la base avant qlq traitement et l’ouvrir après et tt marche très très bien merci encore une fois jawzia :4:

Alors comme un conseil si vous avez besoin de faire des traitement hors de votre base fermé la sa ne cause rien et ça peut éviter de gros problème et vous faire gagné du temps ;)

Bonne journée tt le monde :)