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 -
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.htm
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
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.htm
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:
- Analyse croisée code SQL
- Code ascii - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
- Code blocks - Télécharger - Langages
6 réponses
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
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
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
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
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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
J'ai trouvé une solution en construisant un code par programmation en fonction de mon tableau de départ:
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.
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.
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