Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1498 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL] Multiplication de colonne

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SQL] Multiplication de colonne

n°1264429
couleur ca​fe
la vie, le monde, les gens ...
Posté le 12-12-2005 à 13:29:42  profilanswer
 

Voilà, je souhaite savoir s'il existe une fonction du type de SUM qui permettent de faire le produit de colonne. En gros je cherche à faire quelque chose du style :
 
SELECT kkchose,MULT(colonne)
FROM TABLE
WHERE cond1=cond2
GROUP BY  kkchose ;
 
 
Merci.

mood
Publicité
Posté le 12-12-2005 à 13:29:42  profilanswer
 

n°1264460
Arjuna
Aircraft Ident.: F-MBSD
Posté le 12-12-2005 à 13:48:55  profilanswer
 

:heink:
 
tu veux multiplier les valeurs de toutes les lignes d'une colonne :??:
 
ça n'existe pas, et à mon avis, ce ne sera jamais supporté ! en quelques lignes t'es certain de provoquer une erreur de calcul !
 
même si un NUMBER permet (à quelques pas grand chose près) de référencer chaque atome de la Lune, si tu multiplies des valeurs un peu élevées, t'as toutes tes chances de faire un dépassement, même avec ce type...

n°1264568
couleur ca​fe
la vie, le monde, les gens ...
Posté le 12-12-2005 à 14:58:25  profilanswer
 

En fait il s'agit d'un calcul d'indicateur qui porte sur un ou deux facteurs (actuellement) et peut-être plus plus tard.  J'ai pour consigne de faire mes calculs avec une requête et de ne pas passer par php (ou en tout cas le moins possible).
Mon problème c'est de pouvoir multiplier 1, 2 ou 3 colonnes en utilisant une requête, tout en sachant que le nombre de facteur n'est pas prévisible
 
donc ça me donne un truc du genre  
 
SELECT col1 ...
SELECT col1*col2 ...
SELECT col1*col2*col3 ...
 
Bref, voilà le tableau.  
 
Bon ben il ne me reste plus qu'à passer par PHP, j'aurais tout essayé

n°1264599
Arjuna
Aircraft Ident.: F-MBSD
Posté le 12-12-2005 à 15:27:30  profilanswer
 

euh...
 
tu peux poster la structure de ton bordel ? parceque là, c'est vraiment pas clair...
 
j'ai l'impression que tu veux générer dynamiquement une requête, et ça c'est pas possible

n°1264600
Arjuna
Aircraft Ident.: F-MBSD
Posté le 12-12-2005 à 15:27:48  profilanswer
 

(enfin, si, tout est possible, mais c'est pas vraiment recommandé)

n°1265348
couleur ca​fe
la vie, le monde, les gens ...
Posté le 13-12-2005 à 11:43:23  profilanswer
 

En gros voilà ce que j'aimerai obtenir :
 
SELECT nom_indicateur, date_jour, (SUM(points)/SUM(points_obj))*100
FROM total_point
GROUP BY nom_indicateur, date_jour ;
 
 
Avec
 
CREATE VIEW total_point AS
SELECT nom_indicateur, date_jour, MULT(points) AS points, MULT(points_obj) AS points_obj
FROM facteur_indicateur LEFT JOIN indicateur USING (code_indicateur)
GROUP BY nom_indicateur, date_jour ;
 
Sachant qu'il y a au maximum 3, 4 facteur_indicateur avec le même code_indicateur, mais que ce nombre n'est pas constant
(donc je ne peux pas faire d'auto-jointure).
 
Sinon, non, moi non plus je ne tiens pas à faire une requète à la volée.

n°1265397
Arjuna
Aircraft Ident.: F-MBSD
Posté le 13-12-2005 à 12:38:09  profilanswer
 

là à vue de nez, je ne vois pas de solution à ton problème. a mon avis, c'est mort !

n°1265447
couleur ca​fe
la vie, le monde, les gens ...
Posté le 13-12-2005 à 13:35:19  profilanswer
 

Arrfff,  :sweat:  merci en tout cas ...

n°1266593
belldandys
Posté le 14-12-2005 à 17:31:24  profilanswer
 

Je ne comprends pas ce que tu veux dire par "pas prévisible".  
Si cela veut dire que dans certain cas les colonnes sont nulles, alors tu devrais t'en sortir avec des DECODE et des NVL ..... mais parle t on bien d'Oracle ici ?? .. :p

n°1266955
couleur ca​fe
la vie, le monde, les gens ...
Posté le 15-12-2005 à 09:16:00  profilanswer
 

je suis sur mysql et pas prévisible ça veut dire que certains indicateurs ont actuellement un ou deux facteurs. Mais plus tard, il est possible que certains indicateurs aient trois ou quatre facteurs.
 
Pour faire plus clair, pour l'instant mon MULT est le produit de une ou deux lignes, alors que plus tard, ça pourra être le produit de une, deux, trois ou quatre lignes ...


---------------
¤¤ Diamonds are the girls' best friends ¤¤
mood
Publicité
Posté le 15-12-2005 à 09:16:00  profilanswer
 

n°1266978
Arjuna
Aircraft Ident.: F-MBSD
Posté le 15-12-2005 à 09:45:15  profilanswer
 

nope.
 
je pense que son problème c'est :
 
select truc, machin from bidule where machin
 
=> Ca retourne :
truc  machin
----------------
2        1
3        1
4        2
2        2
5        2
 
 
Lui, il veut :
select mul(truc), machin from bidule
 
mul(truc)  machin
--------------------
6             1
40            2


Message édité par Arjuna le 15-12-2005 à 09:45:32
n°1266984
belldandys
Posté le 15-12-2005 à 09:50:59  profilanswer
 

ah ok, j'avais mal compris ...Ben, jamais entendu parler d'un truc pareil, a mon avis c'est mauvais signe.... Tu ne pourrais pas decrire plus precisement ton probleme pour voir s'il n'y pas un probleme de conception ?

n°1266990
Arjuna
Aircraft Ident.: F-MBSD
Posté le 15-12-2005 à 10:02:19  profilanswer
 

ça peut pas être pire que lorsque je faisais des calculs géométriques dans mes requêtes :D
 
genre, t'as un damier représenté par la clé x,y, et tu veux rammener toutes les "cases" où il y a un certain flag dans un cercle de x cases autour de la case n,m :D
 
c'était assez marrant et certainement pas très courant ;)

n°1266994
belldandys
Posté le 15-12-2005 à 10:07:26  profilanswer
 

Si ca c'est deja plus courant :
select
min(x) over(partition by abscisse order by abscisse  range between 2 preceding and 2 following) min_abscisse_2,
max(x) over(partition by abscisse order by abscisse  range between 2 preceding and 2 following) max_abscisse_2,......
idem avec les ordonnées....

n°1267019
Arjuna
Aircraft Ident.: F-MBSD
Posté le 15-12-2005 à 10:55:13  profilanswer
 

ça c'est pour un carré :o
(pis tant qu'à faire, auant faire deux between, ça passe même sous mysql ;))

n°1267107
belldandys
Posté le 15-12-2005 à 12:11:34  profilanswer
 

ca ressemble a la conception d'un jeu ton truc ... :p

n°1267111
Arjuna
Aircraft Ident.: F-MBSD
Posté le 15-12-2005 à 12:13:27  profilanswer
 

c'était le cas ;)
 
un civilization 2 multiplanétaire en HTML avec une base de données derrière pour gérer la charge massive-multiplayer.
 
sauf que j'ai même pas eu le courage de pontre 2 lignes de code, me suis arrêté à la conception de la base et des principales PS

n°1267340
belldandys
Posté le 15-12-2005 à 14:28:31  profilanswer
 

dommage... trop de travail ?

n°1267348
Arjuna
Aircraft Ident.: F-MBSD
Posté le 15-12-2005 à 14:31:22  profilanswer
 

trop de travail, trop d'idées, personne pour m'épauler (genre demandé à plusieurs reprises un petit coup de main pour faire une ébauche de graphisme, pas eu de réponse, ça m'a lourdé)

n°1267364
belldandys
Posté le 15-12-2005 à 14:37:31  profilanswer
 

Faut pas oublier que l'enthousiasme est communicatif, j'ai eu les memes problemes au debut et ensuite je me suis fait un petit carnet d'amis passionnés (en passant par des technos parfois les plus surprenantes,  y'a meme eu DIV...)

n°1267376
Arjuna
Aircraft Ident.: F-MBSD
Posté le 15-12-2005 à 14:45:41  profilanswer
 

ben tu m'intéresses bien toi tu sais :)
 
surtout que des idées, c'est pas ça qui me manque, j'ai tout le temps envie de me lancer dans des projets de fou furieux :D

n°1267383
belldandys
Posté le 15-12-2005 à 14:49:25  profilanswer
 

Le plus dur, c'est de trouver des gens deja passionés, sinon la plupart te lache en cours de route et c'est très démotivant, quelques fois il faut chercher des gens passionnés dans des domaines completement differents du jeu... J'ai longtemps travaillé avec un pretre qui faisait du 3DSMAX pour un site sur sa paroisse (ensemble on a fait un clone de Sensible Soccer....).

n°1267396
Arjuna
Aircraft Ident.: F-MBSD
Posté le 15-12-2005 à 14:55:37  profilanswer
 

bon, va falloir que j'aille me faire batiser un jour si je comprends bien :D

n°1267399
belldandys
Posté le 15-12-2005 à 14:57:34  profilanswer
 

Es tu pret a en passer par la ? ... Si oui, alors tu es pret pour developper un jeu  !! :p

n°1267407
Arjuna
Aircraft Ident.: F-MBSD
Posté le 15-12-2005 à 15:02:30  profilanswer
 

Ben disons que c'est pas forcément le fait de développer un jeu qui m'intéresse.
 
C'est surtout résoudre un problème, abattre un travail qui semble insurmontable, et avoir àun moment l'occasion de dire "c'est moi qui ai fait ce petit bout de l'application qui sert à rien là, tu vois ?"


Message édité par Arjuna le 15-12-2005 à 15:02:56
n°1267513
belldandys
Posté le 15-12-2005 à 15:56:20  profilanswer
 

Ca me rappelle le jour ou j'ai remplacé dans un morceau de code :
If x=0 Then
x=1
else if x=1
x=0
end if
 
par x=1-x ....
j'avais traumatisé le gars qui codait avec moi :)

n°1267538
Arjuna
Aircraft Ident.: F-MBSD
Posté le 15-12-2005 à 15:59:49  profilanswer
 

c'est mal de faire peur aux gens comme ça :D

n°1306641
basile238
Posté le 15-02-2006 à 19:03:22  profilanswer
 

couleur cafe a écrit :

Voilà, je souhaite savoir s'il existe une fonction du type de SUM qui permettent de faire le produit de colonne. En gros je cherche à faire quelque chose du style :
 
SELECT kkchose,MULT(colonne)
FROM TABLE
WHERE cond1=cond2
GROUP BY  kkchose ;
 
 
Merci.


 
Salut,
 
étant donné que le produit a1*a2*...*an est égal à exp(log a1 + log a2 +...+ log an)
 
le produit d'une colonne toto peut se faire comme ceci:
 
SELECT exp(SUM(log(toto)))
FROM matable;


Message édité par basile238 le 16-02-2006 à 00:15:14
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL] Multiplication de colonne

 

Sujets relatifs
Transferer ma base de donnée SQL sur un autre serveur.Partager une seule base SQL pour deux sites ? Est-ce contre indiqué ?
[SQL] pb de format avec AVGSQL Server et ASPX
[PL/SQL] Postgres et JDBCDate antérieure à 01/01/1970 avec PHP/SQL
Débutant, question sur syntaxe requete SQL[PL/SQL] Stockage d'un select
SQL Access/OracleStandalone pour aller chercher des infos dans une base SQL
Plus de sujets relatifs à : [SQL] Multiplication de colonne


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR