Répétez apres moi :J'aime PBAdonf. J'aime PBAdonf. J'aime PBAdonf.

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 17-02-2010 14:17:04

azuldev  
Membre Geek
Date d'inscription: 10-04-2007
Messages: 51
Pépites: 227
Banque: 0

URGENT compute column

salut
en bref , dans ma bse j'ai les champs suivants:

montant ....
montant1    compute(if mois =1 then montant endif)
montant2    compute(if mois =2 then montant endif)
.
.
.
montant12   compute(if mois =12 then montant endif)

je parle de la compute au niveau de la base SQLANYWHERE et pas dans la datawindow object

le "montant" est un champ calculé selon la valeur du mois

si le mois=12 par exemple le montant11 recois NULL  le if retourne null
comment faire pour eviter le 'NULL'?
je veux bien que le champ montant11 garde sa valeur sans modification si on recalcule le montant selon le mois 12

je souhaite que je j'ai bien expliqué
merci d'avance

Dernière modification par azuldev (17-02-2010 14:26:50)

Hors ligne

 

#2 17-02-2010 15:17:47

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: URGENT compute column

Bonjour, je ne me souviens pas de la syntaxe SQLAnywhere, mais je présume qu'il faut rajouter un Else zéro :
"if mois =2 then montant ELSE 0 endif"
Ou alors j'ai pas bien compris l'objectif, tes explications ne sont pas des plus claires... 


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#3 17-02-2010 15:54:13

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 747
Pépites: 1,028,843
Banque: 171,170,849,654

Re: URGENT compute column

Bonjour,

On peut également utiliser la fonction ISNULL en SQLANYWHERE qui retourne la première expression non "null" de la liste des paramètres :

Code: sql

ISNULL(if mois =1 then montant endif, 0)

Hors ligne

 

#4 17-02-2010 16:32:33

azuldev  
Membre Geek
Date d'inscription: 10-04-2007
Messages: 51
Pépites: 227
Banque: 0

Re: URGENT compute column

salut
merci
mais si je rajoute else la valeur precedente prendra la valeur 0 or je veux bien la garder .

Hors ligne

 

#5 18-02-2010 13:33:05

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: URGENT compute column

OK, tu peux expliquer exactement ce que tu attends comme résultats ?


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#6 18-02-2010 15:47:02

azuldev  
Membre Geek
Date d'inscription: 10-04-2007
Messages: 51
Pépites: 227
Banque: 0

Re: URGENT compute column

salut
si le mois = 1 le montant =100 et je stoke la valeur du montant (100) dans montant1 alors montant1 = 100
si le mois = 2 le montant =300et je stoke la valeur du montant (300) dans montant2 alors montant1 = 300
.
.
.
le stokage de la valeur du montant dans les champs montant1, montant2..... cefait au niveau de la base via l'expression ds le compute (if mois = 1 then montant endif)
si le mois =1 la valeur du montant1 =100
mais quand le mois = 2 la valeur du montant2=300 alors que la valeur du montant1 recoie NULL
en generale si le mois = n  les montants montantx<>n recoie NULL

et j'attends comme resultat le montant1 garde sa valeur 100 si le mois =2 ou 3 ,5.....
le montant2 garde sa valeur 300 si le mois est diff de 2 etc
merci

Hors ligne

 

#7 18-02-2010 17:24:39

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,776,000

Re: URGENT compute column

je comprends pas trop la structure de la table de ta base de donnees
si j'ai bien compris tu a une table avec 12 champs mois/montant
et tu enregistres 12 enregistrements - 1 par mois

pourquoi ne pas faire :
1 enreg pour les 12 mois
ou un table avec un seul montant et le numero du mois ?

cependant
fait 12 select avec 11 union : cela devrait fonctionner


Face à l'agression, la puissance de l'intelligence

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22