Analyse croisée code SQL

mich62120 Messages postés 631 Date d'inscription   Statut Membre Dernière intervention   -  
mich62120 Messages postés 631 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je souhaiterai pouvoir executer une requete SQL qui me renverrai une analyse croisée d'une Table.
Pour être plus précis je souhaiterai obtenir exactement le resultat du premier exemple du paragraphe 5 de ce tutoriel: http://cerig.efpg.inpg.fr/tutoriel/bases-de-donnees/chap16.h­tm
Sauf que la colonne U est en fait dans mon cas est composée de plusieurs colonnes mais bon ca change pas grand chose je suppose.

Je ne trouve que des explications et des façon de faire sous éditeur mais pas de code.
Si quelqu'un connait un lien SVP.

Merci
Mich


A voir également:

6 réponses

soleil_levant Messages postés 393 Date d'inscription   Statut Membre Dernière intervention   32
 
Salut,
Ton lien ne fonctionne pas :( PEux tu le modifier !
0
mich62120 Messages postés 631 Date d'inscription   Statut Membre Dernière intervention   6
 
Salut,
Désolé je n'avais pas vérifié, il ne passe pas.
C'est le paragraphe 5 du chapitre 16:
http://cerig.pagora.grenoble-inp.fr/tutoriel/bases-de-donnees/
Merci à toi de regarder, c'est cool.

Mich
0
moiced59 Messages postés 1145 Date d'inscription   Statut Membre Dernière intervention   60
 
salut


tu peu nous montrer le code que tu essai?
syntax doit ressembler a ca

INSERT INTO perso ( nom, prenom, age )
SELECT nom, prenom, age
FROM personne;

j insert dans la table perso (les champ nom prenom age
je prend les champ nom,prenom,age
dela table personne

voila
0
mich62120 Messages postés 631 Date d'inscription   Statut Membre Dernière intervention   6
 
Salut,

Désolé pour le temps de réponse mais il y a des coupures d'électricité dans mon entreprise.
Je ne pense pas que ton code fasse ce que je recherche, c'est pour ajouter dans une table ayant des colonnes identiques non?
En fait je pars d'une table qui a cette description:
- DATE
- Abscisse1
- Abscisse 2
- NomProduit
- ID_Ordonnée
- Valeur de l'ordonnée

Je peux avoir 1 à N noms de produit et 1 à M ordonnées.

Je souhaiterai un code SQL me renvoyant une table de la forme :

- DATE
- Abscisse1
- Abscisse 2
- NomProduit 1 pour Ordonnée 1
...
- NomProduit 1 pour Ordonnée M
...
...
- NomProduit N pour Ordonnée 1
...
- NomProduit N pour Ordonnée M

La forme du resultat est donc variable pour chaque cas et la table remplit avec les valeurs des ordonnées.
J'espere etre assez clair. Le but est d'avoir des colonnes toutes pretes à être tracé l'une en fonction de l'autre.

Je pense qu'il faut avoir un code SQL qui:
- créer une table dynamiquement en fonction du contenu de la première.
- remplir par succession de requete les cellules.

Je dois faire faire un max de trraitement par le serveur car il y a plusieurs dizaines voir centaines de lignes à traiter et en faisant tout par programmation c'est trop long.
Le problème c'est que je débute en SQL, que je suis déjà fort en retard pour mon projet et que pendant 3 semaines on a des coupures de courant quotidienne donc c'est pas facile pour avancer et apprendre.

Si vous pouvez me guider juste sur un exemple de code pour me lancer ca serai sympa.
Je pense pouvoir donner un début de code vers ce soir.
Merci
Mich
0
mich62120 Messages postés 631 Date d'inscription   Statut Membre Dernière intervention   6
 
Bon suite à une discussion sur un autre forum, apparement c'est impossible tout d'un coup à part en PL/SQL.
Je suis donc parti sur la création de la table par programmation et de ensuite de trouver un alogorithme de passage de colonnes en lignes le plus optimisé possible.
Si vous savez comment je peux le faire en SQL ça serait sympa, mais bon dans ce cas aussi il faudra que j'adapte le code par programmation!
Sinon je pourrai peut être trouvé autre chose de pas trop lent (Les ajout multiples sur WinDev --> Pan!!!!!).

Mich
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ZMEX Messages postés 47 Date d'inscription   Statut Membre Dernière intervention   16
 
Bonjour,

j'ai à peu près le même problème

j'utilise cette requête pour faire un tableau croisé:

TRANSFORM Count(test_délais.Tranche) AS [CompteDeTranche]
SELECT test_délais.Ets, test_délais.Règlement, Count(test_délais.Délais) AS [Total de Délais], SUM((test_délais.[Mnt crédit])-(test_délais.[Mnt débit])) AS Montant
FROM test_délais
where Sum(test_délais.[Mnt crédit]-test_délais.[Mnt débit])
GROUP BY test_délais.Ets, test_délais.Règlement
PIVOT (test_délais.Tranche);

ma requête est juste sauf qu'en excel cela marche bien si on veut ajouter un autre agrégat dans l'agrégat. c-à-d je veux la ligne des montant aussi pour chaque tranche. jusque là je n'affiche que le total. j'ai fait la même chose sur excel cela marche très bien, mais j'essaie d'allimenter les résultats continuellement en ODBC pour pouvoir faire des statistiques plut tard.
(access 2003)
merci de m'illuminer
0
mich62120 Messages postés 631 Date d'inscription   Statut Membre Dernière intervention   6
 
J'ai trouvé une solution en construisant un code par programmation en fonction de mon tableau de départ:

SELECT DATEHEURE,VAL_MetBC,VAL_AbsSup, 
MAX( CASE WHEN ID_CARACT=<ID1> AND STATUT=<Prod1> THEN VAL_CARACT END) as 1 
/* répétez la création de max en chageant les ID pour avoir toutes les combinaisons possibles*/
FROM SADD_IMP_VAL_TMP  
GROUP BY DATEHEURE,VAL_MetBC,VAL_AbsSup


Ca devrait marcher pour moi d'après mes premiers test, je sais pas si ca peut t'aider.
Je suis sur Oracle 10g, je crois qu'il n'y pas de PIVOT.
0