Kopf-Position-Beziehung

07/03/2008 - 11:11 von Detlef | Report spam
Hallo,

habe ein Bestellkopf mit vielen Bestellpositionen.
Möchte die Bestellkopf-Felder ausgeben und dazu die Anzahl der Positionen
und die Menge der Exemplare.

Bisher fallen mir nur diese beiden Möglichkeit ein:

1.)

select
kopf.Feld1,
kopf.Feld2,
kopf.Feld3,
(select count(*) from Bestellpos pos where pos.kopfId = 4711),
(select sum(Menge) from Bestellpos pos where pos.kopfId = 4711)
from Bestellkopf Kopf

2.)

select kopf.Feld1, kopf.Feld2, kopf.Feld3, count(*), sum(Menge)
from Bestellkopf Kopf join Bestellpos pos on kopf.kopfid = pos.kopfId
where kopf.kopfID = 4711
group by kopf.Feld1, kopf.Feld2, kopf.Feld3

- welche ist zu bevorzugen?
- gibt es andere/bessere Möglichkeiten?

Danke im voraus
Detlef
 

Lesen sie die antworten

#1 Jürgen Volke
07/03/2008 - 13:12 | Warnen spam
hallo Detlef

habe ein Bestellkopf mit vielen Bestellpositionen.
Möchte die Bestellkopf-Felder ausgeben und dazu die Anzahl der Positionen
und die Menge der Exemplare.

Bisher fallen mir nur diese beiden Möglichkeit ein:

1.)

select
kopf.Feld1,
kopf.Feld2,
kopf.Feld3,
(select count(*) from Bestellpos pos where pos.kopfId = 4711),
(select sum(Menge) from Bestellpos pos where pos.kopfId = 4711)
from Bestellkopf Kopf

2.)

select kopf.Feld1, kopf.Feld2, kopf.Feld3, count(*), sum(Menge)
from Bestellkopf Kopf join Bestellpos pos on kopf.kopfid = pos.kopfId
where kopf.kopfID = 4711
group by kopf.Feld1, kopf.Feld2, kopf.Feld3

- welche ist zu bevorzugen?
- gibt es andere/bessere Möglichkeiten?




select
kopf.Feld1,
kopf.Feld2,
kopf.Feld3,
from Bestellkopf Kopf inner join
(select KopfId, count(*) as Anzahl, sum(Menge) as Menge
from Bestellpos
Group by KopfId) as Pos
on Kopf.Id = Pos.kopfId

HTH Jürgen

Ähnliche fragen