AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi 2 Tabellen in einem Grid anzeigen - mit Master/Detail

2 Tabellen in einem Grid anzeigen - mit Master/Detail

Ein Thema von Reinhardtinho · begonnen am 17. Aug 2007 · letzter Beitrag vom 17. Aug 2007
Antwort Antwort
Benutzerbild von Reinhardtinho
Reinhardtinho

Registriert seit: 26. Feb 2007
411 Beiträge
 
Delphi 5 Enterprise
 
#1

2 Tabellen in einem Grid anzeigen - mit Master/Detail

  Alt 17. Aug 2007, 10:48
Datenbank: SQL Server 2000 • Zugriff über: SDAC-Komponenten
Hallo zusammen,

Ich möchte gerne Daten aus zwei Tabellen in einem Grid anzeigen lassen, aber mit eingeschränkter Ergebnismenge.

Hier kurz die Felder:

1. Tabelle (Crosstable): Name: Cross_Artikel_Zubehoer
  • Artikel_ID --> (Fremdschlüssel auf Artikelstamm.ID)
  • Zubehoer_ID --> (Fremdschlüssel auf Artikelstamm.ID)
  • Modularikel

2. Tabelle: Name: Artikelstamm
  • ID --> (Primärschlüssel)
  • Name
  • Einkaufspreis
  • Verkaufspreis

So, nun genauer zum Problem.

Ich möchte, dass nun in meinem Grid alle Zubehörartikel angezeigt werden, wo Zubehoerartikel.Artikel_ID und Artikelstamm.ID gleich sind (aber nur für die Artikelstamm.ID, auf der ich grade positioniert bin - also nicht alle).

Beispiel:

Ein Artikel in Artikelstamm wurde ausgewählt und in dem Grid sollen nun alle dazugehörigen Zubehörartikel stehen. Die Zubehörartikel sind auch Teil des Artikelstamms.
Nun möchte ich zu jedem Zubehörartikel auch die Preise wissen (anzeigen reicht ...).


Und das habe ich bereits:

SQL-Statement des Querys:

SQL-Code:
SELECT Artikel_ID, Zubehoer_ID, Modulartikel
FROM Cross_Artikel_Zubehoer, Artikelstamm
WHERE Artikel_ID = Artikelstamm.ID
und den Filter des Querys:

Delphi-Quellcode:
Query_Zubehoer.Filter := 'Artikel_ID=' + IntToStr(Table_Artikel.FieldValues['ID']);
Query_Zubehoer.Filtered := True;

Da ich in SQL noch nicht so fit bin, habe ich bei dem Statement meine Schwierigkeiten.

Wie muss ich das Statement abändern, das ich immer die Preise von den Artikel erhalte, wo ich die IDs in der eingeschränkten Menge im Grid habe?


PS: Ich weiß, dass ist alles ein bisschen verwurschtelt, aber ich hoffe, dass ihr mir bei meinen Problem behilflich sein könnt.
Danke.

MFG
Lorenz
Ich habe viel von meinem Geld für Alkohol, Weiber und schnelle Autos ausgegeben ... Den Rest habe ich einfach verpraßt.

George Best - 22.05.1946 - 25.11.2005 - nordirischer Fußballspieler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: 2 Tabellen in einem Grid anzeigen - mit Master/Detail

  Alt 17. Aug 2007, 11:09
Ich hoffe, dass ich Dich richtig verstanden habe:
SQL-Code:
SELECT A.Artikel_ID, A.Zubehoer_ID, A.Modulartikel, B.Name, B.Einkaufspreis, B.Verkaufspreis
FROM Cross_Artikel_Zubehoer A
JOIN Artikelstamm B ON A.Artikel_ID = B.ID
WHERE A.Artikel_ID = :wert
Und als Parameter wert dann halt die ID des aktuellen DS.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Reinhardtinho
Reinhardtinho

Registriert seit: 26. Feb 2007
411 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: 2 Tabellen in einem Grid anzeigen - mit Master/Detail

  Alt 17. Aug 2007, 11:46
Erstmals besten Dank DeddyH,

habe das SQL-Statement mal übertragen und sehe auch die Preise, allerdings sehe ich immer den Preis, von dem Artikel auf dem ich mich positioniert habe und nicht von den Zubehörartikeln.

Jetzt habe ich zum Beispiel in meinem Grid 3 Zubehörartikel mit den Preisen von meinem "Hauptartikel", also auf dem ich stehe im Artikelstamm. Ich möchte aber gerne die Preise der Zubehörartikel haben, die ja auch in der Artikelstammtabelle stehen.


MFG
Lorenz


PS: Ich habe mal ein Screenshot angehangen, der die Situation verdeutlichen soll.
Miniaturansicht angehängter Grafiken
screenshot_918.jpg  
Ich habe viel von meinem Geld für Alkohol, Weiber und schnelle Autos ausgegeben ... Den Rest habe ich einfach verpraßt.

George Best - 22.05.1946 - 25.11.2005 - nordirischer Fußballspieler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: 2 Tabellen in einem Grid anzeigen - mit Master/Detail

  Alt 17. Aug 2007, 11:49
Kann es sein, dass es noch eine weitere Tabelle mit den Zubehörartikeln gibt, die Du bisher verschwiegen hast?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Reinhardtinho
Reinhardtinho

Registriert seit: 26. Feb 2007
411 Beiträge
 
Delphi 5 Enterprise
 
#5

Re: 2 Tabellen in einem Grid anzeigen - mit Master/Detail

  Alt 17. Aug 2007, 11:55
Nein, wie kommst du darauf?
Ich habe viel von meinem Geld für Alkohol, Weiber und schnelle Autos ausgegeben ... Den Rest habe ich einfach verpraßt.

George Best - 22.05.1946 - 25.11.2005 - nordirischer Fußballspieler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: 2 Tabellen in einem Grid anzeigen - mit Master/Detail

  Alt 17. Aug 2007, 11:59
Ich glaube, jetzt habe ich Dein Datenmodell verstanden, korrigier mich, wenn ich falsch liege:
Es gibt eine Tabelle mit Artikeln. Jeder Artikel kann wieder Zubehör zu einem Artikel aus derselben Tabelle sein, aufgelöst wird das Ganze durch die Crosstable. Stimmt das so?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Reinhardtinho
Reinhardtinho

Registriert seit: 26. Feb 2007
411 Beiträge
 
Delphi 5 Enterprise
 
#7

Re: 2 Tabellen in einem Grid anzeigen - mit Master/Detail

  Alt 17. Aug 2007, 12:00
Ja, korrekt.
Ich habe viel von meinem Geld für Alkohol, Weiber und schnelle Autos ausgegeben ... Den Rest habe ich einfach verpraßt.

George Best - 22.05.1946 - 25.11.2005 - nordirischer Fußballspieler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: 2 Tabellen in einem Grid anzeigen - mit Master/Detail

  Alt 17. Aug 2007, 12:05
Dann versuch es mal so:
SQL-Code:
SELECT C.Name, C.Einkaufspreis, C.Vekaufspreis
FROM Artikelstamm A
JOIN Cross_Artikel_Zubehoer B ON A.ID = B.Artikel_ID
JOIN Artikelstamm C ON C.ID = B.Zubehoer_ID
WHERE A.ID = :wert
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Reinhardtinho
Reinhardtinho

Registriert seit: 26. Feb 2007
411 Beiträge
 
Delphi 5 Enterprise
 
#9

Re: 2 Tabellen in einem Grid anzeigen - mit Master/Detail

  Alt 17. Aug 2007, 13:11
Super, klappt perfekt, bekomme jetzt immer die Preise der Zubehörartikel.

MFG
Lorenz

PS: Werde wohl ma nen Kursus in Sachen SQL belegen müssen.
Ich habe viel von meinem Geld für Alkohol, Weiber und schnelle Autos ausgegeben ... Den Rest habe ich einfach verpraßt.

George Best - 22.05.1946 - 25.11.2005 - nordirischer Fußballspieler
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz