Pas de problème (pb), que du PowerBuilder (PB) ^^

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 24-04-2007 11:13:19

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

Computed COLUMN in SQL SERVER

salut
je voudrais un champ computed dans une table avec une expression conditionnele.
1) en sql ANYWHERE ca marche tres bien en introduisant l'expression dans la case value(computed value)
example : if champ1 < 0 then - champ1 else champ2 endif

2) en SQL SERVER: comment peux je traduire ca?

quelqu'un peut m'aider??
MERCI

Hors ligne

 

#2 24-04-2007 11:29:36

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: Computed COLUMN in SQL SERVER

Salut, ça fait longtemps que je n'ai pas fait de transact SQL, mais je me demande s'il n'existe pas un équivalent du CASE de PL-SQL:

Code: mssql

SELECT AVG(CASE WHEN e.salary > 2000 THEN e.salary
   ELSE 2000 END) "Average Salary" from employees e;


Si quelqu'un d'autre pouvait confirmer...


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#3 24-04-2007 11:46:24

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

Re: Computed COLUMN in SQL SERVER

oui..
mais ca c'est as ma question!!!
moi je parles de COMPUTED COLUMN dans la table.
MERCI

Dernière modification par azuldev (24-04-2007 11:46:45)

Hors ligne

 

#4 24-04-2007 11:56:48

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

Re: Computed COLUMN in SQL SERVER

azuldev a écrit:

if champ1 < 0 then - champ1 else champ2 endif

Salut, en principe un computed est propre à PB et indépendant du SGBDR... Ton exemple en expression de compute donnerait :

Code: pb

if( champ1 < 0, -champ1, champ2 )


Si c'est en SQL que tu veux le résultat directement dans une colonne de la DW sans utiliser de computed :

Code: mssql

select case when champ1 < 0 then -champ1 else champ2 end, ....
from ...
where ...

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

Hors ligne

 

#5 24-04-2007 12:16:06

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

Re: Computed COLUMN in SQL SERVER

Salut

Non pas propre a PB:-:
1) j'ai une 10ene de champs dans une table SQLANYWHERE. ca marche tres bien.
2) j'ai des champs computed dans des tables en SQLSERVER example  TTC AS  HT + TVA
Donc j'attaque la base de données avec PB et ASP dans les deux cas les COMPUTED COLUMN marche bien!!

mais ce que je ne sais pas faire c'est d'introduire une expression conditionnelle!!!
Je préfère cette méthode pour des raisons:
   1 ) Eviter les requettes en +.
   2 ) Garder la "portabilité" de la base.

MERCIII

Hors ligne

 

#6 24-04-2007 12:23:37

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

Re: Computed COLUMN in SQL SERVER

azuldev a écrit:

mais ce que je ne sais pas faire c'est d'introduire une expression conditionnelle!!!

As-tu essayé une expression de compute dans ce genre :

Code: pb

if( champ1 < 0, -champ1, champ2 )

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

Hors ligne

 

#7 24-04-2007 12:32:20

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: Computed COLUMN in SQL SERVER


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#8 24-04-2007 12:34:55

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

Re: Computed COLUMN in SQL SERVER

J'ai essayé ...erreur de compilation syntax incorrecte.
mais La Syntax SQL SERVER est : IF .. THEN .. ELSE ... END

MERCII

Hors ligne

 

#9 24-04-2007 12:38:50

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

Re: Computed COLUMN in SQL SERVER

J'ai deja consulté ... developpez.com j'ai pas trouvé!!

MERCII

Hors ligne

 

#10 24-04-2007 12:42:08

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: Computed COLUMN in SQL SERVER

Bonjour,

Personnellement, je n'ai jamais mis d'expression conditionnelle de type "CASE" dans la définition d'une COMPUTED COLUMN. Si cela est possible, ça doit être marqué dans l'aide en ligne de M$ SQLServer (je n'ai pas travaillé sur ce SGBD depuis près de 7 ans, ce qui fait que je suis un peu "rouillé").

Cependant, je ne vois pas pourquoi ça ne pourrait pas marcher...

Sinon, il reste la solution de créer des fonctions:

http://msdn.microsoft.com/msdnmag/issue … spx?loc=fr

Si quelqu'un d'autre a déjà été confronté à cette problématique, qu'il n'hésite pas à le signaler...


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#11 24-04-2007 14:32:56

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

Re: Computed COLUMN in SQL SERVER

Je dis, les expressions conditionnelles (IF) ne marche pas mais les (CASE) marche.
et je cherche pour les (IF).
MERCII

Hors ligne

 

#12 24-04-2007 14:35:50

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: Computed COLUMN in SQL SERVER

azuldev a écrit:

Je dis, les expressions conditionnelles (IF) ne marche pas mais les (CASE) marche.
et je cherche pour les (IF).
MERCII

tu ne peux pas pour le (IF), à moins de faire une procédure stockée et tout et tout...

le CASE WHEN THEN END, remplace le if justement !

tu peux faire des CASE imbriqués, comme les if... et ca fonctionne bien !


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#13 24-04-2007 14:43:43

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

Re: Computed COLUMN in SQL SERVER

Exactement, c'est la solution.
et j'utilise aussi les TRIGGERs aulieu des SPs
MERCI

Hors ligne

 

#14 03-05-2007 14:57:24

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

Re: Computed COLUMN in SQL SERVER

Salut
j'ai utilisé les column computed avec CASE au lieu IF, mais quelqu'un pourrait me dire dire comment utiliser les COLUMN COMPUTED imbriqués??
exple :
PHT,QTE et R des colonnes normales dans la DATABASE

[PTTC] AS PH * QTE
on utilise la Colonne COMPUTED "PTTC" dans une autre colonne "PTTCR" : [PTTC] AS PTTC - R

MeRcI

Hors ligne

 

#15 03-05-2007 16:03:41

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

Re: Computed COLUMN in SQL SERVER

azuldev a écrit:

Salut
j'ai utilisé les column computed avec CASE au lieu IF, mais quelqu'un pourrait me dire dire comment utiliser les COLUMN COMPUTED imbriqués??
exple :
PHT,QTE et R des colonnes normales dans la DATABASE

[PTTC] AS PH * QTE
on utilise la Colonne COMPUTED "PTTC" dans une autre colonne "PTTCR" : [PTTC] AS PTTC - R

MeRcI

salam azul, tu donnes un nom à ton compute PTTC, par exemple compute_pttc (dans le painter, properties, onglet general,name), ensuite tu peux utiliser ce nom comme une variable dans un autre computed, par exemple :

Code: pb

if( compute_pttc > 0, compute_pttc, -compute_pttc )

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

Hors ligne

 

#16 04-05-2007 11:42:15

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

Re: Computed COLUMN in SQL SERVER

ALAYKA ASSALAM
merci eRaSorZ
mais je parle des COLUMN COMPUTED SQL SERVER pas dans PB
et COLUMN COMPUTED dans la table et pas dans la requete.
MeRcI

Hors ligne

 

#17 04-05-2007 11:58:00

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: Computed COLUMN in SQL SERVER

Salut azuldev,

Je ne sais pas si ce que tu demandes est possible sous SQL Server: J'ai trouvé ceci sous msdn:

computed_column_expression

Is an expression defining the value of a computed column. A computed column is a virtual column not physically stored in the table. It is computed from an expression using other columns in the same table. For example, a computed column can have the definition: cost AS price * qty. The expression can be a noncomputed column name, constant, function, variable, and any combination of these connected by one or more operators. The expression cannot be a subquery.

Sinon, il y a peut-être une erreur dans ta définition:

azuldev a écrit:

on utilise la Colonne COMPUTED "PTTC" dans une autre colonne "PTTCR" : [PTTC] AS PTTC - R

J'écrirais plutôt ça comme ceci:

Code: mssql

PTTCR AS PTTC - R

Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#18 04-05-2007 12:12:15

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

Re: Computed COLUMN in SQL SERVER

Salut foon
i read this in msdn.  je comprend bien que les COMPUTED ne sont que des champs logiques!!
peut etre les COMPUTED imbriqués sont non_autorisés dans l'SQL SERVER.
j'ai fait autrement mais it's very very slow, j'ai utilisé les TRIGGERs
or ca marche tres sous SQL ANYWHERE.
MERCI

Dernière modification par azuldev (04-05-2007 12:13:38)

Hors ligne

 

#19 04-05-2007 12:14:15

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

Re: Computed COLUMN in SQL SERVER

azuldev a écrit:

mais je parle des COLUMN COMPUTED SQL SERVER pas dans PB

Salut, alors tu t'es trompé de forum pour ton post, ici c'est PB...

azuldev a écrit:

j'ai fait autrement mais it's very very slow, j'ai utilisé les TRIGGERs

Ils font quoi les triggers ?


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

Hors ligne

 

#20 16-05-2007 10:44:49

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

Re: Computed COLUMN in SQL SERVER

salut
J'ai appris que PB n'est pas une base de données!! sinon tu n'as pas lu le titre " Base de données"
en bref selon ma recherche :impossible de faire des COMPUTED imbriqués ds SQLSERVER!!
MeRcI

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22