table SQL Ajouter une colonne au lieu de creer une nouvelle table - SQL/NoSQL - Programmation
Marsh Posté le 11-01-2010 à 13:19:15
En relisant mon texte, je me dis que c'est peut etre bon de preciser que la 3e colonne est en faite un sous-ensemble de la 2e...
Marsh Posté le 11-01-2010 à 13:38:57
Tu ne peux pas créer une sorte de table de référence "Type_Propriété" ?
ou tu y insèrerais ton paramétrage sur ta propriété
et puis ensuite tu fait un lien entre ta table WEALTH et ta table "Type_Propriété" (en espérant que tu n'est pas besoin de spécificité pour chaque propriété)
Marsh Posté le 11-01-2010 à 13:43:56
oui cette solution est possible mais j'aimerais pouvoir ajouter la colonne directement... en faisant 2 tables puis une union des 2 tables je sais le faire.. maintenant j'aimerais savoir s'il est possible d'indexer 2 colonnes differentes (faisant des operations sur des lignes differentes) avec le même identifiant (ma premiere colonne dans ce cas...
Merci d'avance :-)
Marsh Posté le 11-01-2010 à 14:13:31
le rpobleme c'est qu'il faudrait que je puisse l'utiliser comme une table..
Marsh Posté le 11-01-2010 à 19:01:34
merci a ceux qui ont deja fait l'effort de lire :-) je debute alors j'ai probablement rater qqch d'evident.
Bon je tente d'expliquer mon probleme differemments
voila un exemple de tableau (
fruits / couleurs /nombre
cerise rouge 10
cerise verte 5
cerise rouge 4
ananas jaune 3
ananas vert 5
et moi ce que j'aimerais faire c'est un tableau qui me donne
fruit /jaune /vert /rouge/ total
cerise 0 5 14 19
ananas 3 5 0 8
ça doit etre faisable en une seule requete non? le probleme etant que les sommes ne sont pas sur les memes lignes...
Marsh Posté le 12-01-2010 à 11:14:59
Voici une piste qui pourrait bien résoudre ton problème d'ajout de colonnes dynamiquement :
http://forum.hardware.fr/hfr/Progr [...] m#t1668734
(et plus généralement, je t'invite à consulter l'ensemble du topic, j'ai tenté d'y apporter le plus d'informations possibles pour prendre en main le SQL et la modélisation avancée)
Marsh Posté le 12-01-2010 à 18:09:51
si je reprends la table des fruits :
create table toto
(fruits varchar2(20),
couleurs varchar2(20),
nombre number
);
insert into toto values ('cerise', 'rouge', '10');
insert into toto values ('cerise', 'verte', '5');
insert into toto values ('cerise', 'rouge', '4');
insert into toto values ('ananas', 'verte', '3');
insert into toto values ('ananas', 'jaune', '5');
commit;
ensuite avec un fichier script sql (test.sql par exemple) je génère dynamiquement les colonnes de somme (pivot sur décode / sum) :
store set saved_settings replace |
Résultat :
Code :
|
Marsh Posté le 12-01-2010 à 18:19:51
Pour le total c'est un peu plus compliqué et il faut feinter quelque peu :
store set saved_settings replace |
Marsh Posté le 11-01-2010 à 11:54:26
Hello,
je dois creer une table avec certaines proprietes qui sont calculée et extraite de ma base de donnée
pour le momemt pour chaque proprieté je cree une nouvelle table
et j'aimerais savoir si c'est possible de le faire avec une seule table en rajoutant a chaque fois une nouvelle colonne, j'ai essayer mais je suis bloqué a un moment.. CF code
CREATE TABLE "WEALTH" // creation de la table (pas de probleme
(
"SKA" VARCHAR2(30),
"WEALTH_SUM" NUMBER,
"LI_SUM" NUMBER,
"AI_SUM" NUMBER,
"EQ_SUM" NUMBER,
"BO_SUM" NUMBER,
"MI_SUM" NUMBER);
INSERT INTO WEALTH (WEALTH_SUM,SKA) // On remplit les 2 premieres colonnes pas de probleme
SELECT CLIENT.SKA, SUM(CLIENT_ASSETS.VALUECHF)
FROM CLIENT_ASSETS,CLIENT
WHERE
CLIENT.SKA=CLIENT_ASSETS.SKA
GROUP BY CLIENT.SKA;
INSERT INTO WEALTH(LI_SUM) // maintenant la 3e colonne il faudrait inclure pour chaque client cette valeur calculée
SELECT SUM(CLIENT_ASSETS.VALUECHF)
FROM CLIENT_ASSETS
WHERE
(WEALTH.SKA=CLIENT_ASSETS.SKA
AND
CLIENT_ASSETS.AC
IN
(
select AIS_ACAT_MAP.AISCAT
from AIS_ACAT_MAP
where AIS_ACAT_MAP.AC='LI')
)
GROUP by WEALTH.SKA
;