begin process at 2012 05 26 23:04:12
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

SQL Server, MSDE, SQL Express

 > 

Procédures Stockées

 > 

Parcourt de chaine et Formule de calcul


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Parcourt de chaine et Formule de calcul

jeudi 12 août 2010 à 14:08:27 | Parcourt de chaine et Formule de calcul

anspauldou

Bonjour

J'ai deux tables dont l'une est Table_Formule et l'autre Table_Donnee. La table Table_Formule contient les informations suivantes :
insert into Table_Formule (NumLigne, Col_Formule)
Values (1, '{1001}*{1003}/{2004}')
insert into Table_Formule (NumLigne, Col_Formule)
Values (2, '({2005}+{1004})/({2004}*{1003}') bref j'ai plusieurs formules différentes par ligne.
Dans la table Table_Donnee j'ai les informations suivantes :
insert into Table_Donnee (CodeRef, ValeurRef)
Values ('1001', 2500)
insert into Table_Donnee (CodeRef, ValeurRef)
Values ('1003', 40)
insert into Table_Donnee (CodeRef, ValeurRef)
Values ('2004', 300)
insert into Table_Donnee (CodeRef, ValeurRef)
Values ('2005', 360)
insert into Table_Donnee (CodeRef, ValeurRef)
Values ('1004', 10)

Je voudrai un script qui me permettra d'avoir au final :
2500*40/300 selon la formule de la première ligne et
(360+10)/(300*40) selon la deuxième ligne. Ma table Table_Formule doit pouvoir contenir autant de combinaison possible de formule. La colonne ValeurRef contient du numeric.

Merci d'avance.


mercredi 25 août 2010 à 01:00:13 | Re : Parcourt de chaine et Formule de calcul

Tolliap


Bonjour,
Je ne sais pas ou tu es ai, mais voici une solution
ceci est une procédure qui reprend tes tables et colonnes que tu as renseigné sur ton poste.
Tu appel la procédure avec en paramètre le numéro de la ligne de la formule dont tu veut le résultat.

Code sql :
Create procedure ResultatFormule
 @NumLigne int
as

declare @formule varchar(400)
set @formule = (select Table_Formule.Col_Formule from Table_Formule where NumLigne=@NumLigne)
DECLARE tnames_cursor CURSOR
FOR 
select CodeRef, ValeurRef from Table_Donnee where @formule like '%{'+CodeRef+'}%'
OPEN tnames_cursor
DECLARE @CodeRef sysname
DECLARE @ValeurRef sysname
FETCH NEXT FROM tnames_cursor INTO @CodeRef, @ValeurRef
WHILE (@@FETCH_STATUS <> -1)
BEGIN
-------------------
set @formule = replace(@formule,'{'+@CodeRef+'}',@ValeurRef)

-------------------
FETCH NEXT FROM tnames_cursor INTO @CodeRef, @ValeurRef
END
CLOSE tnames_cursor
DEALLOCATE tnames_cursor

exec ('select '''+@formule+''' as Formule, '+@formule+' as Resultat')

Qui ne tente rien, n'a rien
mercredi 25 août 2010 à 20:45:03 | Re : Parcourt de chaine et Formule de calcul

anspauldou

Bonjour

J'ai testé ton script et certains points ne marchent pas et j'ai apporté mes modifications dont voici :
- Pour le
select CodeRef, ValeurRef from Table_Donnee where @formule like '%{'+CodeRef+'}%' j'ai opté pour select CodeRef, ValeurRef from Table_Donnee qui marche bien

-Pour le set @formule = replace(@formule,'{'+@CodeRef+'}',@ValeurRef)
j'ai opté pour le
Set @formule = replace(@formule,(Select '{'+ ltrim(rtrim(@@CodeRef)) + '}') ,@Valeur) car il ne voyait par '}'

Je te remercie infiniment

A+


Cette discussion est classée dans : insert, table, donnee, into, formule


Répondre à ce message

Sujets en rapport avec ce message

insert into cherche exemple ... SVP! [ par trexor ] Voilà, c'est pas que j'en ai marre mais je pète un peu les plonds. Pour insérer des données dans une bas access, c'est vraiment la merde avec vb.net!l INSERT INTO ok via ACCESS Too few parameter via ODBC [ par Frederick_Etudiant ] Bonsoir à tous,Je n'arrive pas à résoudre un problème et encore moins à le comprendre.Je travaille avec Java et ACCESS, je crée une table et juste ens insert into/select [ par boubou2412 ] salut tout le monde,je suis certaine qu'il ya une faute dans ma requete j'aimerais bien savoir comment la corriger, bon j'ai un table X qui contient p Problème requête insert into avec select dans une autre table [ par francoissql ] Bonjour, Je cherche à copier des données d'une table vers une autre J'ai crée la requête suivante : insert into [SL_MUFIBUF-201001].[dbo].[KOSTKTR] Insert into [matable] values (ma variable, Select...) c'est possible?? [ par yanis7518 ] Salut à tous, Je voudrais faire une procédure stockée qui fait des insertions d'une table vers une autre. Dans ma nouvelle table j'ai un Guid que je Remplacement de valeurs pour formule de calcul [ par anspauldou ] Bonjour J'ai deux tables Formule et SaisieValeur La table Formule contient : Insert Into Formule (NumFormule, LibFormule) Values ('01', (({a}+{b})* Insertion d'une variable dans table sql [ par jlmzk ] Salut à tous.Voila c'est tout simple, j'ai une variable $bc dont la valeur peut être par exemple AB01Si je fais un echo $bc; j'ai bien AB01 qui s'affi Comment faire un select dans une table apres un insert au sein d'une meme transaction [ par cedkat ] Bonjour, Comme décrit dans le titre, je cherche à faire un select dans une table dans laquelle je viens de faire un insert. J'ai actuellement un plan Probleme d'integrité dans une stored avec transaction [ par issoux ] Conflit entre l'instruction INSERT et la contrainte COLUMN FOREIGN KEYVoilà mon erreur : j'ai une transaction que voici (sous sql server 2000) :CREATE base de donnee [ par wahdani2007 ] slt pour ttes je veut une base de donnee complet pour une gestion de stock avec les requêtes possibles d'une sté (achat et vente des matreriels infos)


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales