![]() |
Datenbank: firebird • Version: 2.1 • Zugriff über: zeos
query anpassen, geht das ?
hallo zusammen,
ich habe eine query : hier auf die relevanten Felder gekürzt
SQL-Code:
select p.liefermenge as liefermenge, art.bezeichnung1, vklieferung_id from vkaufkopf as a, vkaufpos as p, artikel as art where a.vkaufkopf_id = p.vkaufkopf_id and p.art_id = art.artikel_id order by a.lieferdatum,kunden_id, artikel_id,vklieferung_id; die mir folgendes Ergebnis liefert:
Code:
gibts ne möglichkeit per SQL die Daten so zusammnzufassen, dass in dem Beispiel die ersten 3 Zeilen als eine Zeile zurückgegeben werden?
LIEFERMENGE BEZEICHNUNG1 VKLIEFERUNG_ID
200 Brötchen 1 500 Brötchen 2 300 Brötchen 3 8 Brezel 3 50 Bauernbrot 750g 2 50 Bauernbrot 750g 4 8 Bauernbrot 1,5kg 1 8 Bisquitböden 2 5 Aprikosenstreusel/Blech 1 Oder muss ich das programtechnisch lösen? Danke für eure Ideen. 8 Aprikosenstreusel/Blech 4 5 Baguettebrötchen 4 |
AW: query anpassen, geht das ?
Ja, nennt man Gruppierung:
SQL-Code:
select
sum(p.liefermenge) as liefermenge, art.bezeichnung from vkaufkopf as a, vkaufpos as p, artikel as art where a.vkaufkopf_id = p.vkaufkopf_id and p.art_id = art.artikel_id order by a.lieferdatum,kunden_id, artikel_id,vklieferung_id group by art.bezeichnung; |
AW: query anpassen, geht das ?
GROUP BY
Das würde aber mit der VKLIEFERUNG_ID Probleme geben, also diese kannst du dann nicht mehr richtig ausgeben, da sie sich ja unterscheiden. [edit] Och menn, wo kommt denn MK plötzlich her? :shock: (da weiß man endlich och mal was und dann :cry: ) |
AW: query anpassen, geht das ?
Zitat:
bring aber nicht das gewünschte Ergebnis ich brauchs so: brötchen Lieferung1 200 lieferung2 300 lieferung3 200 Brot Lieferung1 100 Lieferung2 50 Lieferung3 120 |
AW: query anpassen, geht das ?
In der Frage steht es aber anders.
Welches DBMS? Manche kennen eine Listen-Aggegatsfunktion. Sonst musst du dass selber zusammenbasteln |
AW: query anpassen, geht das ?
Wenn es sich um eine feste maximale Anzahl von Spalten handelt, kann man so etwas mit einer StoredProcedure realisieren. Aber die Aufgabe der Datenbank ist das eigentlich nicht, die soll Daten schnell und effektiv bereitstellen. Schaff dir Datenobjekte/Strukturen für die gewünschte Darstellungsform, die dann mit einer simplen Abfrage gefüllt werden.
|
AW: query anpassen, geht das ?
Zitat:
Wie gesagt firebird 1.2 zugriff über zeos. |
AW: query anpassen, geht das ?
Zitat:
Das wäre natürlich optimal, lässt sich aber leider nicht umsetzen. Die Anforderungen in einem anderen Fall sind wieder andere, und ich kann nicht für jede spezielle Anforderung eine andere DB-Struktur verwenden. |
AW: query anpassen, geht das ?
Bei FireBird geht das:
SQL-Code:
select
art.bezeichnung, LIST( 'Lieferung ' || VKLIEFERUNG_ID || ' ' || p.liefermenge, ' ') as liefermenge, from vkaufkopf as a, vkaufpos as p, artikel as art where a.vkaufkopf_id = p.vkaufkopf_id and p.art_id = art.artikel_id order by a.lieferdatum,kunden_id, artikel_id,vklieferung_id group by art.bezeichnung; |
AW: query anpassen, geht das ?
Zitat:
Viiiielen Dank,euch allen,und besonders mkinzler es funktioniert .-) Gruss KH |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:23 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