Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Access Datensaetze zusammenfuegen

Frage Entwicklung Datenbanken

Mitglied: Xaero1982

Xaero1982 (Level 3) - Jetzt verbinden

23.06.2006, aktualisiert 04.06.2008, 14122 Aufrufe, 11 Kommentare

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:

01.
 
02.
RID   Seriennummer     RGroesse       RGeschwindkeit 
03.
0       012345             256            400 
04.
1       012345             256            400 
05.
0       543210             128            266 
06.
1       543210             256            266 
07.
0       098765             512            400 
08.
1       098765             512            400 
09.
2       098765             512            400 
10.
3       098765             512            400 
11.
 
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

01.
Seriennummer     RGroesse     RGeschwindkeit 
02.
012345            512          400 
03.
543210            384          266 
04.
098765            2048         400 
05.
 
Jemand eine Idee?
Mitglied: Biber
23.06.2006 um 13:59 Uhr
Moin Xaero1982,

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

Gruß
Biber
Bitte warten ..
Mitglied: Xaero1982
23.06.2006 um 14:05 Uhr
Leider nein, Biber :/

Ergebnis:

01.
 
02.
Seriennummer   Expr1   Expr2 
03.
012345          256      400 
04.
543210          256      266 
05.
098765          512      400 
06.
 
EDIT: Ich habs

01.
SELECT DISTINCT tbl_Arbeitsspeicher.Seriennummer,sum(tbl_Arbeitsspeicher.RGroesse) AS Summe, First(tbl_Arbeitsspeicher.RGeschwindigkeit) 
02.
FROM tbl_Arbeitsspeicher 
03.
GROUP BY tbl_Arbeitsspeicher.Seriennummer; 
04.
 
Thx a lot Biber
Bitte warten ..
Mitglied: Xaero1982
23.06.2006 um 14:16 Uhr
Wo wir schon mal dabei sind:

Selbiges Problem, aber brauche anderes Ergebnis:

tbl_Maus: MID, Seriennummer, MHersteller, MBeschreibung, MTastenzahl

01.
0   12345   xyz   xyz123   3 
02.
1   12345   abc   abc123   3 
03.
0   54321   xyz   xyz123   3 
04.
1   54321   abc   abc123   3 
05.
 
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
Bitte warten ..
Mitglied: Biber
23.06.2006 um 14:25 Uhr
Na dann neuer Versuch (ungetestet)
01.
Select distinct Seriennummer, 
02.
    first(MHersteller) as Herst1 
03.
    last(MHerstelller) as Herst2, 
04.
    first(MBeschreibung) as Text1, 
05.
    last(MBeschreibung) as Text2 
06.
from tbl_maus 
07.
group by seriennummer;
....wenn es denn immer max. zwei sind.

Gruß
Biber
Bitte warten ..
Mitglied: Xaero1982
23.06.2006 um 16:03 Uhr
...
du bist ein Engel

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

Wenn es mehr sind ? Was dann?
Bitte warten ..
Mitglied: Biber
23.06.2006 um 16:10 Uhr
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
[/Edit]
Bitte warten ..
Mitglied: Xaero1982
24.06.2006 um 13:31 Uhr
hehe, ja da war ich schneller

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

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.
Bitte warten ..
Mitglied: Xaero1982
03.07.2006 um 11:06 Uhr
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?
Bitte warten ..
Mitglied: DaDudeness
04.06.2008 um 13:07 Uhr
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:
01.
Kunde | Anschluss | Anschluss2 
02.
10             10 
03.
10                          10
Ich möchte einen Query erstellen, der die Spalten "Kunde", "Anschluss" und "Anschluss2" ausgibt und
die Kundennummer nur einmal enthält.

Also:
01.
Kunde | Anschluss | Anschluss2 
02.
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.

01.
SELECT DISTINCT test3.Kunde, sum(test3.Anschluss), sum(test3.Anschluss2) 
02.
FROM test3;
Kann mir jemand helfen, wie ich das Problem in den Griff kriegen kann?
Würde mich sehr freuen

Lieber Gruß
Bitte warten ..
Mitglied: Biber
04.06.2008 um 13:57 Uhr
Moin DaDudeness,

versuche es mit der Max()-Funktion.
01.
SELECT test3.Kunde,  
02.
max(test3.Anschluss) as Anschluss1,  
03.
max(test3.Anschluss2) as Anschluss2 
04.
FROM test3 
05.
group bei test3.kunde;
Grüße
Biber
Bitte warten ..
Mitglied: DaDudeness
04.06.2008 um 15:10 Uhr
Hi Biber,

gaaaaaaanz vielen Dank, hat großartig funktioniert!

Lieber Gruß
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Datenbanken
Access Checkbox mit Kombifeld und dann filtern

Frage von atomas42 zum Thema Datenbanken ...

Batch & Shell
CMD cURL Access Token parsen (2)

Frage von maddig zum Thema Batch & Shell ...

LAN, WAN, Wireless
Access Point: Ubiquiti UAP AC PRO Einschätzung Reichweite (4)

Frage von TimMayer zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
Freifunk über vorhandene Access Points ausstrahlen (4)

Frage von Uwoerl zum Thema LAN, WAN, Wireless ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Microsoft
Ordner mit LW-Buchstaben versehen und benennen (19)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...