access unterabfrage
Geizhals » Forum » Programmierung » access unterabfrage (15 Beiträge, 160 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
..
Re(2): access unterabfrage
08.12.2003, 20:02:44
naja, ist zwar scho eine weile her, aber danke für die antwort:

also, ich beziehe für ein Datum Werte aus zwei unterschiedlichen Quellen, die beide den selben eindeutigen Schlüssel verwenden, der aber einmal (notgedrungen) als Textfeld (größerer Datensatz) abgespeichert werden muss (der eine Datensatz ist größer und beinhaltet eben auch Text, der kleinere nur Zahlen) und einmal als Zahl (kleinerer). Nun soll für jeden Datensatz im kleineren der dazupassende aus dem größeren gefunden werden, und kombiniert werden. Sollte er im Größeren nicht vorhanden sein dann ist nur der aus dem Kleineren zu nehmen. Anschließend sollen diese Informationen in einer Tabelle gespeichert werden.

Also Beispiel

große TAbelle:                            kleine tAbelle:

ID      | Wert1|                            ID    | Wert 2
sadf       10                                 1234  10
1234      6                                   3465  5

aus dem soll dan folgendes gemacht werden:

Datum    |       ID          |       Wert
6.12.        1234                  8
6.12.        sdaf                   10
6.12.        3465                  5

also die Schnittmenge soll kombiniert, der Rest übernommen werden. Dummerweise funktioniert das Update nicht, da er die ID als Text nicht mit der ID als Zahl in Übereinstimmung bringen kann (ist auch irgendwie logisch).

Zusatzproblem:
Möchte anschließend einige Datensätze zur weiteren Vearbeitung wieder rausladen (in eine Textdatei), leider kann es vorkommen dass die ID "kürzer" ist (d.h. nur 2 stellig zum Beispiel), dann soll er die Stellen davor mit Nullen bis auf 6 auffüllen, also wäre 123 eigentlich 0123. Das funktioniert irgendwie auch nicht.

Hoffe ich konnte mich irgendwie klarmachen ;-)

Danke auf jeden Fall

mfg

Penguin
Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
......
Re(6): access unterabfrage
09.12.2003, 13:35:14
Daten die zur Verfügung stehen große Tabelle (in der Folge --> Tabelle1 eigentlich ist es eine Textdatei, die eingelesen wird), beinhaltet täglich ca. 12100 Datensätze:
Aufteilung wie folgt:
ID (Text),Score(Zahl),Region (Text),Global(Zahl),five(Zahl),recomm(Zahl), country(Text)

32190E10,78,North America,72,3,23,US
34441910,12,North America,12,3,30,MM
34412310,10,North America,10,3,50,US
M4709510,62,North America,55,2,50,US
033041,24,Developed Europe,21,3,94,LN
630225,3,Developed Asia Pacific,4,3,50,JP
625313,36,Developed Asia Pacific,44,2,98,JP
453267,27,Developed Europe,25,2,27,SW

die kleinere Tabelle (in der Folge --> Tabelle2 ebenfalls Textdatei die eingelesen wird):
beinhaltet täglich ca. 650 Datensätze
Aufteilung:
ID (Zahl) "Tabulator" komb(Zahl)

714456 7
581141 5
403187 3
412267 9
423586 10
421282 5
565431 9
442072 8
462595 8
453267 6

die kommen beide als Textdatei.

Zusammengelegt ist folgendes Ergebnis gewünscht:
Datum (Date) Kennzahl(Text) Score(Zahl) global(zahl) five(zahl) recomm (zahl) country(text) komb(zahl) gesamt(zahl)
Datum Kennzahl Score Global five recomm country komb   Gesamt
12/09/03 453267 27 25 2 27 sw 6        4
12/09/03 033041 24 21 3 94 ln 0        2
12/09/03 714456 0 0 0 0 sw 7        7
.
.
.
(die anderen Einträge werden ebenso übernommen)

Die Übergänge sind folgende:
Für alle Datensätze, die in beiden vorkommen, soll eine Kombination in Gesamt eingetragen werden, mit einzustellenden Gewichtungen (hier 50:50, allerdings ist Score durch 100 zu dividieren (gerundet)).
Für alle die in Tabelle 1 vorkommen aber nicht in Tabelle 2 soll Score der Gesamtscore sein (allerdings Score/100)
Für alle aus Tabelle 2 die nicht in Tabelle 1 sind, soll Komb der Gesamtscore sein.

Wie man sieht muss ID aus Tabelle 1 ein Text sein, da ab und an Buchstaben vorkommen.

Das Datum aus dem Ergebnis ergibt sich aus dem Tag der Eintragung. Ausgegeben in eine neue Text-Datei sollen alle Werte werden, die Komb<>0 haben und die von heute sind (alle neuen). Die anderen werden anschließend gesondert ausgegeben.

Daher auch die Zusatzfrage, mit den Kennzahlen, da er die führende Null weggibt (zB aus 033041 wird 33041).

Hoffe das beseitigt die Unklarheiten.

Das mit dem Datum und der Berechnung hab ich nicht erwähnt, weil es mir nicht relevant erscheint, bzw. dieser Teil ja eh funktioniert. Happern tut es bei folgender Anweisung:
Update Ergebnis set ergebnis.komb=tabelle2.komb where ergebnis.id=tabelle2.id,
respektive bei
Select ergebnis.id,ergebnis.komb from ergebnis where ergebnis.id not exists in (select tabelle2.id from tabelle2)
und bei
Select ergebnis.id,ergebnis.komb from ergebnis where ergebnis.id exists in (select tabelle2.id from tabelle2)

Danke!


mfg

Penguin
Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung