![]() |
Datenbank: SQLite • Version: 3 • Zugriff über: ASQLite Komponenten
Kleines Logikproblem
Hallo,
ich schon wieder - sorry. Ich bekomme langsam Kopfschmerzen, von einem kleinen Logikproblem. Ich habe eine Person, die hat einen Over Wert in verschiedenen Gebieten. Die Gebiete sind noch Kontinenten zugeordnet. Also 3 Tabellen. 1ne für die Gebiete, eine für die Kontinente und eine mit dem Wert der Overness, der workerID und der GebietID. Nun wollte ich, die Gesammt Overness der Kontinente eines Workers auflisten. Die WorkerID ist gegeben. Darüber komme ich auch an die Gebiete und damit den Kontinent. Aber auflisten wollte ich es in T-Form. Ich habe mit 2 Shapes ein T gemacht und rechts und links je eine ListBox. Ich kann diese füllen, indem ich pro Gebiet den Kontinent rausfinde und die Overness. Allerdings sieht mein T dann so aus: =========||========== Amerika || 100 Amerika || 80 Amerika || 100 Europa || 100 || Mein Problem: Ich möchte nur 1 mal einen Kontinent auflisten und die Overness addieren. Also 1 mal Amerika mit 280. Puh, kompliziert. Ich hoffe, jemand hat es verstanden und kann mir helfen. Gruß, Andreas |
Re: Kleines Logikproblem
Das müsste mit sum() und GROUP BY (
![]() |
Re: Kleines Logikproblem
Zitat:
Zitat:
|
Re: Kleines Logikproblem
Zitat:
Das kann man so unterschreiben. Ich habe keine Ahnung was du überhaupt machen willst, Sangius. |
Re: Kleines Logikproblem
Ist schwer zu beschreiben *g*
Ich arbeite mich mal weiter in SQL ein. Ich sollte die Joins lernen *g* |
Re: Kleines Logikproblem
dann mal mal die Struktur der Tabellen der Datenbank auf und mach Pfeile, welche Einträge wie verknüpft sind. Daraus kann man dann die Joins machen. Mit solch einer Struktur wird es wesentlich einfacher.
Wenn du das selbst machen willst, schau dir mal Access an und erstelle neben den Tabellen eine Abfrage wie du deine Daten haben willst. Dann kannst du in die SQL-Ansicht umschalten und hast deinen SQL-Befehl. Bernhard |
Re: Kleines Logikproblem
Hallo Sanguis
wenn ich Dich richtig verstanden habe, dann ist das vollkommen richtig was Du bekommst [delphi] Tab1: Worker1;ID=1 Worker2;ID=2 Tab2 Amerika;ID=1 Afrika;ID=2 Tab3 30;T2ID=2;T1ID=1 40;T2ID=2;T1ID=2 77;T2ID=2;T1ID=1 Wenn Deine Daten ungefähr so aussehen, dann sind die Ergebnisse der Query auch korrekt: Worker1 Afrika 30 Worker1 Afrika 77 ... wahrscheinlich mußt Du deine Daten über mehrere Queries (eine für jeden Worker) (oder eine mit Parametern!) erfragen. Z.B.:
SQL-Code:
ich hoffe das hilft Dir
select Tab1.*, Tab2.*, Tab3.*
from Tab1, Tab2, Tab3 where Tab1.ID = Tab3.T1ID and Tab2.ID = Tab3.T2ID and Tab2.Kontinent ='Afrika' oder and Tab1.Worker = 'Worker1' Gruß K-H |
Re: Kleines Logikproblem
Bitte nicht diese Schreibweise angewöhnen, das gibt nur Probleme. Lieber mit JOIN arbeiten:
SQL-Code:
select *
from Tab1 join Tab2 on Tab1.ID = Tab3.T1ID join Tab3 on Tab2.ID = Tab3.T2ID where Tab2.Kontinent ='Afrika' -- bzw. Tab1.Worker = 'Worker1' |
Re: Kleines Logikproblem
Hallo,
ich danke Euch. Ich hab das Problem mit mehreren Querys gelöst. Aber ich versuche mich grad an Euren Lösungen, ist schlanker :) Gruß, Andreas |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz