xaero1982
Goto Top

Access Datensaetze zusammenfuegen

Hi,

ich arbeite noch an einem Archivierungstool für Hardware etc.

So, ich habe diverse Tabellen erstellt für die jeweilige Komponente.
Z.B. tbl_Arbeitsspeicher

Diese Tabellen sind wie folgt aufgebaut

tbl_Arbeitsspeicher: RID , Seriennummer, RGroesse, RGeschwindigkeit

RID ist eine selbstkreiierte Zahl. Abhängig von der Anzahl der gefundenen Komponenten. Also bei 2 Speicherbausteinen ist die RID 0 und 1.
Die Seriennummer ist die Systemseriennummer und die Geschwindigkeit die Geschwindikeit des Rams.

RID und Seriennummer ergeben den Primary Key!

Die Tabelle mit einigen Beispieldaten sieht dann ca. so aus:

RID   Seriennummer     RGroesse       RGeschwindkeit
0       012345             256            400
1       012345             256            400
0       543210             128            266
1       543210             256            266
0       098765             512            400
1       098765             512            400
2       098765             512            400
3       098765             512            400

Nun, wenn ich einen Bericht erstelle erstellt er natürlich für jeden Datensatz einen Bericht. In dem obigen Fall also 8 Berichte.

Er soll aber nur 3 Erstellen. Also möchte ich die zusammengehörigen Datensätze addieren.

Also habe ich eine Abfrage erstellt die mir erst mal alle ausgibt wo die RID 0 ist, eine Abfrage für 1 usw. bis RID = 3
Diese Abfragen habe ich in einer erneuten Abfrage zusammengefasst. Nun gibt er mir nur den Datensatz aus mit der 098765. Dies aber korrekt mit 2048 MB. Aber die anderen Datensätze fallen raus. Logisch, wenn ich bis RID 1 gehe gibt er mir die ersten beiden aus.

Eine weitere Abfrage habe ich gemacht in der RID >= 0 ist und da ist das Ergebnis quasi das gleiche.

Ich weiss einfach nicht wie ich es schaffe, dass die Tabelle so aussieht

Seriennummer     RGroesse     RGeschwindkeit
012345            512          400
543210            384          266
098765            2048         400

Jemand eine Idee?

Content-Key: 34726

Url: https://administrator.de/contentid/34726

Ausgedruckt am: 29.03.2024 um 08:03 Uhr

Mitglied: Biber
Biber 23.06.2006 um 13:59:54 Uhr
Goto Top
Moin Xaero1982,

SELECT distinct Seriennummer, First(RGroesse), First(RGeschwindkeit)
from tbl_Arbeitsspeicher
Group by Seriennummer;

Gruß
Biber
Mitglied: Xaero1982
Xaero1982 23.06.2006 um 14:05:28 Uhr
Goto Top
Leider nein, Biber :/

Ergebnis:

Seriennummer   Expr1   Expr2
012345          256      400
543210          256      266
098765          512      400

EDIT: Ich habs

SELECT DISTINCT tbl_Arbeitsspeicher.Seriennummer,sum(tbl_Arbeitsspeicher.RGroesse) AS Summe, First(tbl_Arbeitsspeicher.RGeschwindigkeit)
FROM tbl_Arbeitsspeicher
GROUP BY tbl_Arbeitsspeicher.Seriennummer;

Thx a lot Biber face-smile
Mitglied: Xaero1982
Xaero1982 23.06.2006 um 14:16:26 Uhr
Goto Top
Wo wir schon mal dabei sind:

Selbiges Problem, aber brauche anderes Ergebnis:

tbl_Maus: MID, Seriennummer, MHersteller, MBeschreibung, MTastenzahl

0   12345   xyz   xyz123   3
1   12345   abc   abc123   3
0   54321   xyz   xyz123   3
1   54321   abc   abc123   3

Hierbei wird ein mal die Maus ausgegeben und eine mal das USB-HID.

Wieder werden beim Bericht 2 erzeugt und nicht einer :/.
Hier kann ich natürlich nichts addieren, sondern müsste quasi in einem Bericht 2 Datensätze abarbeiten oder diese aneinanderketten oder sonstwas. Keine Ahnung
Mitglied: Biber
Biber 23.06.2006 um 14:25:06 Uhr
Goto Top
Na dann neuer Versuch (ungetestet)
Select distinct Seriennummer,
    first(MHersteller) as Herst1
    last(MHerstelller) as Herst2,
    first(MBeschreibung) as Text1,
    last(MBeschreibung) as Text2
from tbl_maus
group by seriennummer;
wenn es denn immer max. zwei sind.

Gruß
Biber
Mitglied: Xaero1982
Xaero1982 23.06.2006 um 16:03:22 Uhr
Goto Top
...
du bist ein Engel face-smile

Auch wenn der HersteLLLer mich erst irritiert hat und ich so weit weg sitze, dass ich nicht gesehen habe das es 3 L's sind und er immer nen Wer haben wollte face-smile

Wenn es mehr sind ? Was dann?
Mitglied: Biber
Biber 23.06.2006 um 16:10:37 Uhr
Goto Top
Merkwürdig,
das probier ich doch gleich mal.
Laut M$ Technet http://www.microsoft.com/technet/prodtechnol/sql/70/reskit/part11/sqc18 ...

gibt es First() und Last() durchaus bei MS-ACCESS-SQL.

Bei Deinem Problem kannst Du ja aber auch auf Min() und Max() ausweichen.

Gruß
Biber
[Edit]
Uppps, jetzt hast Du mich überholt - war noch die Antwort auf Dein "Last() gibbet nit"

Wenn es mehr Hersteller sind, dann... hm, dann willst Du quasi eine Pivot-Tabelle haben mit n-Hersteller-Spalten...? *grübel*...

Ach, sag einfach Bescheid, wenn es soweit ist, aber frühestens Montag... ich muss mal langsam ins WE face-wink
[/Edit]
Mitglied: Xaero1982
Xaero1982 24.06.2006 um 13:31:57 Uhr
Goto Top
hehe, ja da war ich schneller face-smile

der hat den Fehler bei Last() angezeigt, weil da der HersteLLLer gestanden hat und ich das übersehen habe face-smile

Naja PivotTabelle noch nie mit gearbeitet :/

Ich habe leider auch keine weiteren Daten, da mein Ausbilder es nicht gebacken bekommen hat das Skript als Startskript einzubinden. Ergo habe ich nur 4 Datensätze bzw Daten von 4 PC's.

Bin erst am .. naja übernächste Woche im Betrieb.
Mitglied: Xaero1982
Xaero1982 03.07.2006 um 11:06:44 Uhr
Goto Top
Nun, also das mit der Abfrage von mehreren "Mäusen" hat dann natürlich einen Bug.

Bei nur einem Gerät ist First = Last. D.h. es wird 2 mal ausgegeben bzw. 2 mal steht das gleiche da :/

Soll natürlich nur ein mal sein, also müsste es theoretisch variabel sein. Für 1,2,3 ... n.

Idee?
Mitglied: DaDudeness
DaDudeness 04.06.2008 um 13:07:48 Uhr
Goto Top
Hallo zusammen,

habe diesen alten Thread ausgegraben, da er ziemlich gut zu meinem Problem paßt.

Ich habe eine Tabelle (Kunde), bei denen die Kundennummer (Spalte "Kunde") mehrmals auftaucht. Einmal
sind Werte in Spalte "Anschluss" und einmal Werte in Spalte "Anschluss2" gesetzt.

Beispiel:
Kunde | Anschluss | Anschluss2
10             10
10                          10

Ich möchte einen Query erstellen, der die Spalten "Kunde", "Anschluss" und "Anschluss2" ausgibt und
die Kundennummer nur einmal enthält.

Also:
Kunde | Anschluss | Anschluss2
10             10           10

Wenn ich folgenden Query nach obigem Beispiel ausführen will, bekomme ich die Meldung, daß ich eine
Abfrage ausführen wollte, die den angegebenen Ausdruck 'Kunde' nicht als Teil der Aggregatsfunktion
einschließt.

SELECT DISTINCT test3.Kunde, sum(test3.Anschluss), sum(test3.Anschluss2)
FROM test3;

Kann mir jemand helfen, wie ich das Problem in den Griff kriegen kann?
Würde mich sehr freuen

Lieber Gruß
Mitglied: Biber
Biber 04.06.2008 um 13:57:07 Uhr
Goto Top
Moin DaDudeness,

versuche es mit der Max()-Funktion.
SELECT test3.Kunde, 
max(test3.Anschluss) as Anschluss1, 
max(test3.Anschluss2) as Anschluss2
FROM test3
group bei test3.kunde;

Grüße
Biber
Mitglied: DaDudeness
DaDudeness 04.06.2008 um 15:10:45 Uhr
Goto Top
Hi Biber,

gaaaaaaanz vielen Dank, hat großartig funktioniert!

Lieber Gruß