horizontaal ontdubbelen

  • Onderwerp starter Onderwerp starter combi
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

combi

Gebruiker
Lid geworden
16 sep 2009
Berichten
41
Beste ,
dubbele records en velden geen probleem
kolom 1
2 resultaat ontdubbeld 2=2
14
2
14
3
6
resultaat ontdubbeld 2=2
14= 2
3 = 1
6= 1 standaard sql


maar
door rekenwerk op kolommen

kom ik
kolom1,kolom2,kolom3,kolom4,kolom5,kolom6
rij 2 14 2 14 3 6 zou hier dus 2 2 1 1
rij 14 18 18 18 18 14 4 2

weet dat er 190000 records zijn , doe dit nu via neem 1 ste record
plaats in kolom vertikaal (temp) ,en update deze terug in bestaande tabel
dit 190000 keer , heb geduld daarvoor , maar berekeningen waarden veranderen om
de 2 dagen , dus telkens opnieuw is geen optie

mvg
yves
 
En wij moeten dit voorbeeld snappen?
 
@Octafish
Graag even op een nomale manier richting de TS reageren.

@Combi
Zou u een iets meer duidelijke uitleg kunnen geven over uw probleem?
Een voorbeeldbestand zou al een stuk helpen of anders een screenshot van hetgeen wat u bedoeld.
 
anders een screenshot van hetgeen wat u bedoeld.[/COLOR][/QUOTE]
Goedemorgen
zie bijlage

de dubbele waarden zou ik graag horizontaal in record hebben
resultaat ontdubbel hoogste aantal , laagste en rest
mvg
yves
 
Laatst bewerkt:
Ik denk dat het nog een beetje vroeg is, want ik zie geen bijlage. Wel een overbodige quoot, dus als je die straks bij het toevoegen van de bijlage kan verwijderen, dan graag! Dat houdt de draad namelijk een stuk beter leesbaar. En als je ook nog wat meer uitleg kan geven (al kan dat natuurlijk ook in de bijlage staan( dan graag!
 
bij deze de bijlage
 

Bijlagen

  • vertikaal.jpg
    vertikaal.jpg
    96,4 KB · Weergaven: 101
Ik ben bang dat dit plaatje mij nog steeds helemaal niks zegt; een tweetal records met getallen in aparte velden. Wat valt daar aan te ontdubbelen? Ze zijn namelijk (de records) niet identiek. Dus niet dubbel.
 
Beste ontdubbeling gebeurd horziontaal

dus
record 1
kolom1 = 18 kolom 2 =18 kolom3 =18 kolom 4= 13 kolom5 = 13 kolom6=13 resultaat 4(x18) en 2(x13) dus 4 2

record 12
kolom1 = 17 kolom 2 =18 kolom3 =18 kolom 4= 13 kolom5 = 13 kolom6=13 resultaat 4(x17) en 1(x13) en 1(x17) dus 3 1 1
mvg
yves
 
Je wilt weten a) welke waarden er voorkomen in één record, en b) hoe vaak die voorkomen? En dat in een aparte query, neem ik aan?
 
Klopt ,
maar in plaats van ontdubbeling aantal records per kolom ,

omgekeerd

1 record ,6 kolommen daarvan de dubbel waarden

doe dit momenteel zo
insert 1 ste record
1 sql select kolom1 as kolom1 ;kolom 2 as kolom1 enz
dan heb ik tbl
kolom1
18
18
18
18
13
13 daarvan ontdubbel en update de orginele tabel
dan delete en volgend record
maar dit 190000 keer duurt te lang
en dit om de 2dagen opnieuw.

ik den ergen inner join
select eerste record ontdubbel in temp file
en dan updaten
maar heb van inner join geen kaas gegeten
mvg
yves
 
Ik heb nog steeds geen flauw idee wat je aan het doen bent; wat je aan SQL laat zien is in ieder geval geen geldige SQL code, dus daar kan ik ook al niks aan aflezen.
 
Beste ,
heb dit doorgekregen van vriend
zelfde uitkomst maar
gebruikt geen acces

hoe moet ik dit aanpakken in acces
Code:
SELECT TK, GROUP_CONCAT(counter ORDER BY counter DESC) result
FROM (
SELECT col, COUNT(*) AS counter, TK
FROM (
SELECT  K1 AS col,TK
FROM    test
UNION ALL
SELECT  K2 AS col,TK
FROM    test
UNION ALL
SELECT  K3 AS col,TK
FROM    test
UNION ALL
SELECT  K4 AS col,TK
FROM    test
UNION ALL
SELECT  K5 AS col,TK
FROM    test
UNION ALL
SELECT  K6 AS col, TK
FROM    test
ORDER BY TK
) cols
GROUP BY col,TK
ORDER BY TK) res
GROUP BY TK

mvg
yves
 
Laatst bewerkt door een moderator:
Access kent geen Group_Concat, dus dat zou ik niet weten. Een Union kun je wel maken. En een subquery ook. Als je een oplossing wilt vóór 1 januari, zou ik zeggen: doe er eens een paar bestandjes bij... Bij voorkeur een tabel met de brongegevens (tabel [test]) en een excel bestandje o.i.d. met het gewenste resultaat.
 
Laatst bewerkt:
Beste ,
hopelijk is dit wat duidelijker
heb in mdb
test tabel,ook nog gewenste resutaat tabel en de ter info tssberekeing dat hij zou moeten uitvoeren

mvg
yves
 

Bijlagen

Dit kan alleen via VBA bereikt worden, vrees ik. Ik heb daar zelf wel eens een functie voor gemaakt (de vraag is al eerder langsgekomen) maar in dat voorbeeld stonden de verschillende waarden in aparte records, en dat is bij jou niet het geval. Je zult dus in ieder geval een UNION query moeten maken die alle losse waarden in aparte records zet (een beetje zoals in de query hierboven). Op basis van die query kun je dan een concatenate functie gebruiken. Hier heb je nog een voorbeeldje.
 
Beste ,

kom al tot hier ,enkel de tabel draaien lukt mijn niet

tabel
kolom1=idnr , kolom2
1 3
1 2
1 1

hoe krijg ik dit op één record

kolom1=idnr, kolom2
1 3,2,1

mvg
yves
 
Daar heb je dus een functie voor nodig, zoals in het draadje hierboven is uitgelegd. Overigens, als je toch een functie moet maken, kun je net zo goed een functie maken die gelijk het resultaat oplevert. Programmeren moet je toch :)
 
Zoals ik al een paar keer heb gezegd, heb je daar een functie of een procedure voor nodig. Ik heb wat in het voorbeeldje gebouwd dat werkt. Je hebt daar verder geen queries voor nodig. Al kun je de knopfunctie wel omzetten naar een functie die je dan in een query kunt gebruiken.
 

Bijlagen

Om nog even aan te vullen: als je er een functie van maakt, die je in een query kan gebruiken en op een formulier, ben je een stuk dynamischer in je gegevens. Een query wordt namelijk bijgewerkt zodra je iets verandert in een record. De uitkomst die je ziet is dus altijd correct. Gebruik je de functie zoals die nu in het formulier zit, en die de gegevens in de tabel opslaat, dan ben je daar nooit zeker van. Sterker nog: verander maar wat in de tabel, en de gegevens kloppen al niet meer. In de tussentijd tussen het vorige bericht en deze, heb ik de functie overigens al gemaakt en getest, dus dat kan heel snel :)
 
Beste ,
ik bekijk dit begin deze week ,
momenteel zit acces in loopke , de 52 uur ongeveer,

alvast bedankt , laat iets weten tegen dinsdag
mvg
yves
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan