Tror du ikke du skal have noget min(), max() eller lignende med? For som der står returnerer én af dine trans.eqnum åbenbart mere end en række ved select/join fra trans+es.
Select count(es.value), trans.eqnum from es, trans where trans.eqnum = es.eqnum and es.aid = 'E1' and trans.eq9='TEST' group by trans.eqnum having count(es.value) > 1
måske kan denne fortælle dig hvilke rækker der skal i søgelyset
proaccess>> UPDATE trans, es SET trans.kol15=es.value WHERE trans.eqnum=es.eqnum AND es.aid='E1' AND trans.eq9='TEST'; returnere denne fejl FEJL i linie 1: ORA-00971: manglende SET-n°gleord Så det er måske ikke understøttet som du skriver
Teepee>> Jeg har prøvet din Select count(es.value), trans.eqnum from es, trans where trans.eqnum = es.eqnum and es.aid = 'E1' and trans.eq9='TEST' group by trans.eqnum having count(es.value) > 1
den returnere "Ingen rækker er valgt"! mærkeligt - men nedenstående select hvor count(), group by og having er fjernet returnere det rigtige antal poster...
Select es.value, trans.eqnum from es, trans where trans.eqnum = es.eqnum and es.aid = 'E1' and trans.eq9='TEST';
update trans t1 set kol15 =(Select es.value from es, trans t2 where trans.eqnum = es.eqnum and es.aid = 'E1' and t2.eq9='TEST' and t2.eqnum = t1.eqnum);
teepee>> pdate trans t1 set kol15 =(Select es.value from es, trans t2 where t1.eqnum = es.eqnum // rettet til t1 and es.aid = 'E1' and t2.eq9='TEST' and t2.eqnum = t1.eqnum);
jeg har prøvet ovenstående men det virker son om det hænger... Tak for hjælpen indtil nu , jeg fortsætter i morgen. Spm er åbent indtil da hvis nogen har et forslag.
Teepee>> det virker med dit forslag ang. aliaser - dog ske opdateringen noget langsomt (es indeholder ca 400000 poster ) Jeg giver teepee 55 points da du har bidraget med mest hjælp, tak!. Proaccess får de sidste 5 for hans bidrag.
Hvis kolonner er specificeret i den rækkefølge du nævner skulle det jo være godt nok. Måske er det eq9=TEST der er problemet. Har denne index? Hvis ikke, hvis der kun er få værdier, så ville et bitmapped index måske være sagen.
Hvis en tabel kun har et begrænset antal mulige værdier, men mange rækker, kan man med fordel lave et index bitmapped, i stedet for et almindeligt b-træ struktur index. Syntaxen er blot CREATE BITMAP INDEX ... Så hvis du har fire mulige værdier og 10.000.000 rækker skal det helt sikkert være bitmapped. Der er dog mange andre faktorer der spiller ind, så hvis du er i tvivl så bare lav et alm. index eler prøv begge dele (en ad gangen altså!).
Trans indeholder ialt 6707 poster hvor kun 439 skal opdateres, es indeholder ca. 405000. Jeg prøvede at lave et almindeligt index men det tog stadigvæk samme tid (lang tid!). Hvis indexet skal være unikt på Trans kræver det at ca. 10 kolonner skal indgå.
Jeg er heller ikke sikker på at man må i en update, og jeg ved ikke om det virker hvis man skriver det hvor man normalt placerer hintet, nemlig efter første ord i en DML statement, dvs. lige efter UPDATE... Ideen var at den skulle tage es og trans i den rækkefølge de er nævnt....
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.