online 1
gast (50)

/ Forum / Datenbanken

DatenbankenDatenbanken

Fragevon babypet vom 01.08.2020, 16:23 Options

Abfrage

hallo zusammen, ich schon wieder,

ich habe folgende tabelle:

Artikel Location QTY
Blabla D 5
Blabla B 2
Blabla A 9

ich möchte jetzt mittels einer Abfrage folgende Tabelle erstellen

Artikel QTY_D QTY_B QTYA
Blabla 5 2 9

das geht natürlich über 4 Abfragen. Es handelt sich aber um ca 1000 Artikel und 11 Locationen.

Weiß jemand Rat?

Danke und Gruß
babypet


Antwort schreiben

Antwort 1 von lorf55 vom 02.08.2020, 09:15 Options

Hallo babypet,
ich finde den Weg über mehrere SELECT-Anweisungen ganz ok:
SELECT LocQTY.Artikel, 
(SELECT Sum(LocQTY.QTY)  FROM LocQTY WHERE (LocQTY.Location="d")) AS QTY_D,
(SELECT Sum(LocQTY.QTY)  FROM LocQTY WHERE (LocQTY.Location="b")) AS QTY_B, 
(SELECT Sum(LocQTY.QTY)  FROM LocQTY WHERE (LocQTY.Location="a")) AS QTY_A
FROM LocQTY
GROUP BY LocQTY.Artikel;

wobei LocQTY deine Tabelle bezeichnet.

Aber vielleicht findet ja jemand noch was anderes (obwohl ich es mir nicht vorstellen kann, weil man immer den Ärger mit den Aggregatfunktionen hat).

Gruß
lorf

Antwort 2 von babypet vom 02.08.2020, 13:51 Options

Hi Iorf,

der Ansatz liest sich gut, allerdings wird zu jedem Arttikel nun die Gesamtsumme QTY aller vorhandenen Artikel angzeigt und nicht die tatsächliche QTY. Ein eperimentieren mit MAX und ErsterWert führte zu keinm Ergebnis. Vielleicht hast Du ja noch eine Idee.

Danke und Gruß
babypet

Antwort 3 von lorf55 vom 02.08.2020, 15:45 Options

Hallo babypet,
unter der Voraussetzung, dass in keiner Location doppelte QTYs auftreten, geht auch das:
SELECT DISTINCT LocQTY.Artikel, 
(SELECT L.QTY FROM LocQTY as L WHERE ( (L.Location="d") AND (L.Artikel= LocQTY.Artikel) )) AS QTY_D, 
(SELECT L.QTY FROM LocQTY as L WHERE ( (L.Location="b") AND (L.Artikel= LocQTY.Artikel) )) AS QTY_B,
(SELECT L.QTY FROM LocQTY as L WHERE ( (L.Location="a") AND (L.Artikel= LocQTY.Artikel) )) AS QTY_A
FROM LocQTY;

Sonst gibts den Fehler, dass von einer Unterabfrage nur 1 Datensatz zurückgegeben werden kann.

Besser ist schon die Summen-Variante:
SELECT [LocQTY].[Artikel],
 (SELECT sum(L.QTY)  FROM LocQTY as L WHERE ( (L.Location="d") AND (L.Artikel= LocQTY.Artikel) )) AS QTY_D,
 (SELECT sum(L.QTY)  FROM LocQTY as L WHERE ( (L.Location="b") AND (L.Artikel= LocQTY.Artikel) )) AS QTY_B,
 (SELECT sum(L.QTY)  FROM LocQTY as L WHERE ( (L.Location="a") AND (L.Artikel= LocQTY.Artikel) )) AS QTY_A
FROM LocQTY
GROUP BY [LocQTY].[Artikel];

Die Abfrage aus AW1 ist falsch. Ich glaube, jetzt ist es besser.

Gruß
lorf

Antwort 4 von babypet vom 02.08.2020, 16:26 Options

Hi Iorf

VOLL SUUUUUUUPER.
Es funzt undich bin Dir tausendmal dankbar

Gruß
babypet

Ähnliche Themen

Abfrage Jahr
Posaunenchor  30.07.2007 - 26 Hits - 4 Antworten

Ja/Nein Abfrage
ichhabeinefrage  09.08.2007 - 48 Hits - 3 Antworten

abfrage anzeigen von Ja UND Nein
mbalrog  21.08.2007 - 6 Hits - 5 Antworten

keine Daten in einer Abfrage
MasterMike002  30.08.2007 - 8 Hits - 6 Antworten

Abfrage
RalfH  16.10.2007 - 85 Hits - 2 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026