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

 


 Mot :   Pseudo :  
 
 Page :   1  2  3
Page Suivante
Auteur Sujet :

[Oracle8i] LEFT OUTER JOIN foireux?

n°1155789
eraser17
Posté le 21-07-2005 à 11:50:49  profilanswer
 

Reprise du message précédent :
je trouve rien bordel :cry:

mood
Publicité
Posté le 21-07-2005 à 11:50:49  profilanswer
 

n°1155845
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 21-07-2005 à 12:14:29  profilanswer
 

c'est normal, y'a ambiguité !
tu sélectionnes le champ ENGINESERIALNUMBER de la table ENGINE_HISTORY_TST_PROD, mais ta clause FROM contient les tables MSYS.ENGINE_HISTORY_TST_PROD et ENGINE_HISTORY_TST_PROD.
les 2 noms de tables sont identiques, donc ton SELECT s'emmele les pinceaux


Message édité par Harkonnen le 21-07-2005 à 12:14:52

---------------
J'ai un string dans l'array (Paris Hilton)
n°1155893
eraser17
Posté le 21-07-2005 à 12:31:52  profilanswer
 

ouai mais si par exemple je prend ça comme requete
 
SELECT ENGINE_HISTORY_TST_IDLE.ENGINESERIALNUMBER
FROM MSYS.ENGINE_HISTORY_TST_IDLE
 
ça marche.  
 
comment je fait pour dire que je veux nommer la colonne avec C1 et la table comme T1 ?


Message édité par eraser17 le 21-07-2005 à 12:32:33
n°1155896
eraser17
Posté le 21-07-2005 à 12:33:14  profilanswer
 

en fait meme quand j'écrit en SQL ça
 
SELECT ENGINE_HISTORY_TST_IDLE.ENGINESERIALNUMBER C1
FROM MSYS.ENGINE_HISTORY_TST_IDLE
 
Ms query me rajoute automatique le nom de la table dans le FROM et ça devient ça
 
SELECT ENGINE_HISTORY_TST_IDLE.ENGINESERIALNUMBER C1
FROM MSYS.ENGINE_HISTORY_TST_IDLE ENGINE_HISTORY_TST_IDLE

n°1155907
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 21-07-2005 à 12:36:56  profilanswer
 

parce qu'il faut que tu spécifies le nom de ton shéma dans le SELECT :o

Citation :


SELECT MSYS.ENGINE_HISTORY_TST_IDLE.ENGINESERIALNUMBER C1
FROM MSYS.ENGINE_HISTORY_TST_IDLE


---------------
J'ai un string dans l'array (Paris Hilton)
n°1155921
eraser17
Posté le 21-07-2005 à 12:44:14  profilanswer
 

ça change rien :/

n°1155950
eraser17
Posté le 21-07-2005 à 13:11:58  profilanswer
 

sinon je peux utiliser quoi comme language de script qui me permettra de recuperer les données de la bdd par une requete sql, les traitera et les renverra sous excel?

n°1155964
megadub
Posté le 21-07-2005 à 13:34:34  profilanswer
 

et ça ?
 
SELECT EHTI.ENGINESERIALNUMBER C1
FROM MSYS.ENGINE_HISTORY_TST_IDLE EHTI

n°1155997
eraser17
Posté le 21-07-2005 à 14:04:31  profilanswer
 

ORA-00932: FROM keyword not found where exptected :/
 
tain je pige vraiment pas, meme par les options de renommage de colonne de Msquery ça passe pas.

n°1156006
eraser17
Posté le 21-07-2005 à 14:10:14  profilanswer
 

par contre ça marche quand on vire l'alisases de la colonne
 
en faisant ça koi
 
SELECT EHTI.ENGINESERIALNUMBER  
FROM MSYS.ENGINE_HISTORY_TST_IDLE EHTI
 
donc reste l'aliases de la colonne a trouvé, mais c deja un pas en avant :jap:

mood
Publicité
Posté le 21-07-2005 à 14:10:14  profilanswer
 

n°1156035
megadub
Posté le 21-07-2005 à 14:25:30  profilanswer
 

et  
 
SELECT EHTI.ENGINESERIALNUMBER AS C1
FROM MSYS.ENGINE_HISTORY_TST_IDLE EHTI
 
c'est SQLserver c'est ça ?

n°1156037
eraser17
Posté le 21-07-2005 à 14:29:38  profilanswer
 

Oracle 8i et MSquery

n°1156038
eraser17
Posté le 21-07-2005 à 14:30:18  profilanswer
 

nope ça passe pas non plus ça

n°1156050
megadub
Posté le 21-07-2005 à 14:35:08  profilanswer
 

c'est MSQUERY qui doit délirer... sous Oracle aucune raison que ça ne marche pas, tu peux essayer sous SQL*Plus pour t'en assurer.
 
Je ne connais pas MSQuery donc...  
 
Et tu y tiens vraiment à ces alias parce que t'as qu'à passer par une vue sinon ;)

n°1156055
eraser17
Posté le 21-07-2005 à 14:40:23  profilanswer
 

ben en fait je dois transformer une serie de donnée qui est dans la base sous la forme:
 

number    test     state   result  
123       rated    P       4564  
123       peak     P       3867  
247       rated    P       7865  
247       peak     P       1234


 
en un truc comme ça
 

number     state   result_rated    result_peak  
123         P       4564            3867  
247         P       7865            1234


 
et je vois pas d'autre moyen de le faire qu'en faisant des sous-requete avec le number en argument.donc me faut un moyen de faire passer l'argument koi.
 
mais bon je sens que ça va me faire 30 SELECT pour une requete, je suis pas sur que ça le fasse mais je vois pas d'autre moyen :/

n°1156098
megadub
Posté le 21-07-2005 à 15:05:19  profilanswer
 

CREATE OR REPLACE VIEW tavue IS
select peak.number, peak.state, peak.result result_peak, rated.result result_rated
FROM (SELECT * FROM tatable WHERE test='peak') peak,  
     (SELECT * FROM tatable WHERE test='rated') reated,
WHERE peak.number = rated.number;
 
SELECT * FROM tavue;
 
Et voila :)


Message édité par megadub le 21-07-2005 à 15:06:09
n°1156108
eraser17
Posté le 21-07-2005 à 15:11:50  profilanswer
 

j'essaye ça tout de suite, merci :jap:

n°1156123
eraser17
Posté le 21-07-2005 à 15:26:06  profilanswer
 

non je ne craquerais pas [:jofission]
 
 
bon donc je modifie le code avec les bonnes valeurs
 
CREATE OR REPLACE VIEW view1 IS  
SELECT peak.ENGINESERIALNUMBER, peak.CORRTQ result_peak, rated.CORRTQ result_rated  
FROM (SELECT * FROM MSYS.ENGINE_HISTORY_TST_PROD WHERE STAGE ='peak') peak,  
     (SELECT * FROM MSYS.ENGINE_HISTORY_TST_PROD WHERE STAGE ='rated') rated,  
WHERE peak.ENGINESERIALNUMBER = rated.ENGINESERIALNUMBER;  
 
SELECT * FROM view1;  
 
je copie ça dans la fenetre SQL de MSquery comme d'hab.
 
et il me sort  
 
COULD NOT ADD THE TABLE '(SELECT'.
 
doit y avoir un truc qui m'echappe encore [:dawa]
 
ou alors c'est vraiment msquery qui foire.


Message édité par eraser17 le 21-07-2005 à 15:26:42
n°1156130
eraser17
Posté le 21-07-2005 à 15:30:00  profilanswer
 

j'en viens a me demander si il est vraiment possible de faire autre chose que des requete de base dans msquery. si ça tombe c'est juste pas possible que ça marche avec du code plus évolué.

n°1156138
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 21-07-2005 à 15:34:33  profilanswer
 

dégage donc msquery, et essaie toutes les requêtes qu'on t'a données dans SQL*Plus ! y'a aucune raison que rien ne marche :o


---------------
J'ai un string dans l'array (Paris Hilton)
n°1156154
megadub
Posté le 21-07-2005 à 15:40:11  profilanswer
 

CREATE OR REPLACE VIEW view1 IS  
SELECT peak.ENGINESERIALNUMBER, peak.CORRTQ result_peak, rated.CORRTQ result_rated  
FROM MSYS.ENGINE_HISTORY_TST_PROD peak,  
     MSYS.ENGINE_HISTORY_TST_PROD rated
WHERE peak.ENGINESERIALNUMBER = rated.ENGINESERIALNUMBER
AND peak.STAGE ='peak'  
AND rated.STAGE ='rated' ;  
 
Et pourquoi MSQuery ???


Message édité par megadub le 21-07-2005 à 15:40:25
n°1156160
megadub
Posté le 21-07-2005 à 15:41:15  profilanswer
 

pt1 je viens de voir :
 
FROM (SELECT * FROM MSYS.ENGINE_HISTORY_TST_PROD WHERE STAGE ='peak') peak,  
     (SELECT * FROM MSYS.ENGINE_HISTORY_TST_PROD WHERE STAGE ='rated') rated,  
WHERE
 
Si tu mets une , juste avant le WHERE ça marche pas terrible en effet... faut faire un minimum attention quand même :/

n°1156164
eraser17
Posté le 21-07-2005 à 15:44:31  profilanswer
 

Harkonnen a écrit :

dégage donc msquery, et essaie toutes les requêtes qu'on t'a données dans SQL*Plus ! y'a aucune raison que rien ne marche :o


 
j'ai pas de login pour acceder a sql*plus :/
 
sinon ça ferais longtemps que j'aurais largué msquery :o

n°1156169
eraser17
Posté le 21-07-2005 à 15:47:04  profilanswer
 

megadub a écrit :

CREATE OR REPLACE VIEW view1 IS  
SELECT peak.ENGINESERIALNUMBER, peak.CORRTQ result_peak, rated.CORRTQ result_rated  
FROM MSYS.ENGINE_HISTORY_TST_PROD peak,  
     MSYS.ENGINE_HISTORY_TST_PROD rated
WHERE peak.ENGINESERIALNUMBER = rated.ENGINESERIALNUMBER
AND peak.STAGE ='peak'  
AND rated.STAGE ='rated' ;  
 
Et pourquoi MSQuery ???


 
 
missing keyword [:dawa]
 
msquery pour pouvoir tout balancer dans excell.
 
bon je vais demander un login sql*+ ou j'arrete, je peux pas bosser avec un truc qui foire dès qu'on utilise un autre mot que select :o

n°1156185
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 21-07-2005 à 15:54:47  profilanswer
 

[:rofl]


---------------
J'ai un string dans l'array (Paris Hilton)
n°1156289
megadub
Posté le 21-07-2005 à 16:39:37  profilanswer
 

je suis curieux de savoir comment tu te connectes sur MSQuery sans login...

n°1156434
eraser17
Posté le 21-07-2005 à 18:49:24  profilanswer
 

ben j'ai un login pour MSquery mais il marche pas sur SQL*Plus.
 
putain la merde pour obtenir un truc dans les grosses boites. faut passer par pleins de gens qui renvoient ailleurs :fou:
 
enfin bref j'ai tjr pas mon truc, je verrais demain.


---------------
Mon appli de réalité augmentée sur Android -- et sur iPhone/iPad-- Mes VTT en 650B - 584mm..
n°1174681
eraser17
Posté le 11-08-2005 à 16:01:39  profilanswer
 

me revoila pour de nouvelle aventures [:dawa]
 
bon cette fois ci j'essaye de faire un join, tjr sur oracle 8i, et ça marche pas. enfin comme d'hab koi.  
 
bon la situation, 2 table
 
D
 

SN   .....
----------
415
545
311
757
107


 
P
 

SN  STAGE  TIME
----------
415  R  25
545  P  47
311  P  56
757  R  47
107  P  56


 
je veux prendre tout les numero de SN et obtenir une table comme ça pour le stage P par ex
 

SN  STAGE  TIME
----------
415    
545  P  47
311  P  56
757    
107  P  56


 
 
enfin avoir dans la colonne TIME que les valeur pour STAGE = P
 
j'ecris cette requete pour n'avoir que la colonne avec le TIME
 
SELECT P.CYCLETIME
FROM  
MSYS.ENGINE_HISTORY_TST_DOCK D,  
MSYS.ENGINE_HISTORY_TST_PROD P
WHERE D.ENGINESERIALNUMBER=P.ENGINESERIALNUMBER(+) AND  
D.ENGINETESTDATE = P.ENGINETESTDATE (+)  AND  
(P.STAGE(+)='peak')
 
 
et ça me met que la liste des P, les numero associé a R sont viré [:gratgrat]
 
j'ai fait une connerie qqpart?
 
 
 
 
 

n°1174687
betsamee
Asterisk Zeperyl
Posté le 11-08-2005 à 16:10:18  profilanswer
 

Code :
  1. select P.CYCLETIME
  2. FROM
  3. MSYS.ENGINE_HISTORY_TST_DOCK LEFT JOIN
  4. (SELECT * from MSYS.ENGINE_HISTORY_TST_PROD
  5. where STAGE=P
  6. )P on MSYS.ENGINE_HISTORY_TST_DOCK.SN=P.SN

n°1174715
eraser17
Posté le 11-08-2005 à 16:33:57  profilanswer
 

merci, j'ai touché pour adapté aux noms de colonne et j'ai ça
 
SELECT P.CYCLETIME  
FROM MSYS.ENGINE_HISTORY_TST_DOCK D LEFT JOIN  
(SELECT * FROM MSYS.ENGINE_HISTORY_TST_PROD
WHERE ENGINE_HISTORY_TST_PROD.STAGE='peak') P ON D.ENGINESERIALNUMBER = P.ENGINESERIALNUMBER
 
et ça me fout une erreur SQL command not properly ended [:gratgrat]

n°1177785
eraser17
Posté le 17-08-2005 à 12:11:19  profilanswer
 

en fait j'ai la version 8i et j'ai l'impression d'après ce que je lis, que les LEFT JOIN n'ont été implementé que dans la 9.

n°1177798
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 17-08-2005 à 12:23:33  profilanswer
 

oui, pas de LEFT JOIN dans 8i. les jointures se font à coup de WHERE et de (+)


---------------
J'ai un string dans l'array (Paris Hilton)
n°1177801
Beegee
Posté le 17-08-2005 à 12:27:24  profilanswer
 

Code :
  1. SELECT P.CYCLETIME
  2. FROM MSYS.ENGINE_HISTORY_TST_DOCK D,
  3.      MSYS.ENGINE_HISTORY_TST_PROD P
  4. WHERE D.ENGINESERIALNUMBER = P.ENGINESERIALNUMBER(+)
  5. AND P.STAGE='peak';

n°1177805
eraser17
Posté le 17-08-2005 à 12:31:09  profilanswer
 

ça a l'air de marcher :love:
 
je le fous dans mon appli pour voir ce que ça donne, merci :jap:

n°1381573
eraser17
Posté le 05-06-2006 à 18:50:59  profilanswer
 

1 an plus tard, j'ai reçu un mail, ils utilisent tjr le prog que je leur avais fait l'année passée, ils en sont super content et sont en train de l'installer dans tout les départements.  
 
Je voulais vous remercier encore de m'avoir apporté votre aide, c'était vraiment sympa :jap:

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
bloc en % float leftouter join qui renvoie un résultat deux fois
[resolu] div contenant d'autres div dont float:left;Left Join et maximum
IE ne prend pas mon margin-left CSS[SQL] transformé une sous requete en requete avec LEFT join
php-GD iprob saturation de palette imagecoloralocate ?? 
Plus de sujets relatifs à : [Oracle8i] LEFT OUTER JOIN foireux?


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)