You are not logged in.

  • Login

1

Monday, January 31st 2011, 11:40am

sql Felder addieren

Guten Tag,
bin neu hier. Viele Grüße an alle.
Ich habe ein problem mit einer sql Abfrage auf einer oracle 9 DB:

folgender select:
select distinct sdg_sdgid, sdg_cllanz, sdg_bgew, pod_usrid
from spod_pod, slaf_leistanf, ssdg_sendung
where laf_lafid = pod_lafid
and laf_sdgid = sdg_sdgid
and sdg_datum = '21.01.2011'
and pod_location = 'Entladung FV'
group by pod_usrid, sdg_sdgid, sdg_cllanz, sdg_bgew

bringt folgendes Ergebnis:
SDG_SDGID SDG_CLLANZ SDG_BGEW POD_USRID
HFM-3127190-HFM-1 1 110 aydi
HFM-3127191-HFM-1 2 584 aydi
HFM-3127192-HFM-1 3 400 aydi
HFM-3127193-HFM-1 1 104 aydi
HFM-3127194-HFM-1 1 28 aydi
HFM-3127195-HFM-1 5 100 aydi
HFM-3127196-HFM-1 3 304 aydi
HFM-3127197-HFM-1 2 173 aydi
HFM-3127023-HFM-1 1 475 weiler
HFM-3127025-HFM-1 16 591 weiler
HFM-3127026-HFM-1 2 316 weiler
HFM-3127074-HFM-1 10 1.000 weiler
HFM-3127126-HFM-1 3 2.000 weiler
HFM-3127127-HFM-1 1 348 weiler
HFM-3127128-HFM-1 2 160 weiler

wobei ich dann pro pod_usrid die Summen haben möchte.
(Eine Addition von SDG_SDGID ist dann nicht mehr nötig).

ich kriege das nicht hin. wenn ich sum(sdg_cllanz) und sum(sdg_bgew)
mache, bekomme ich falsche zahlen.

Hat jemand einen brauchbaren Tipp ?
Danke

Stephen

2

Monday, January 31st 2011, 11:04pm

Auf den ersten Blick würde ich vermuten dass das distinct da nicht verloren hat.

3

Tuesday, February 1st 2011, 8:14am

Deine prolembeschreibung ist ziemlich abstrakt. DISTINCT kann schuld sein. Ein fehlender join kann es sein. Evtl gruppierst du auch falsch. Du möchtest doch pro nutzer 4 einträge haben, oder?

4

Tuesday, February 1st 2011, 4:10pm

HFM-3127193-HFM-1 1 104 aydi
HFM-3127194-HFM-1 1 28 aydi
HFM-3127195-HFM-1 5 100 aydi
HFM-3127196-HFM-1 3 304 aydi
HFM-3127197-HFM-1 2 173 aydi
HFM-3127023-HFM-1 1 475 weiler
HFM-3127025-HFM-1 16 591 weiler
HFM-3127026-HFM-1 2 316 weiler
HFM-3127074-HFM-1 10 1.000 weiler
HFM-3127126-HFM-1 3 2.000 weiler
HFM-3127127-HFM-1 1 348 weiler

ja, ist etwas abstrakt. Hier nochmal in einer Tabelle die man besser lesen kann.
Es sollen Spalte 2 + 3 addiert werden, solange der benutzer "aydi" ist (Spalte 4)
Dann kommt der benutzer "weiler". Hier wieder Spalte 2+3 addieren.
Spalte 1 kann man dann weglassen.

Vielleicht ist es jetzt verständlicher.

Mist, leider kann ich wohl keine korrekt aussehende Tabelle reinkopieren.

distinct habe ich mal weggelassen. Sieht auch noch gut aus, aber keine Addition pro benutzer (aydi + weiler)

mfg
stephen

5

Tuesday, February 1st 2011, 5:22pm

Das heißt du willst nur den User gruppieren?

SQL Code

1
2
3
4
5
6
7
SELECT sum(sdg_cllanz), sum(sdg_bgew), pod_usrid
FROM spod_pod, slaf_leistanf, ssdg_sendung
WHERE laf_lafid = pod_lafid
AND laf_sdgid = sdg_sdgid
AND sdg_datum = '21.01.2011'
AND pod_location = 'Entladung FV'
GROUP BY pod_usrid;

6

Wednesday, February 2nd 2011, 12:44pm

Hallo Stef,

ja das sieht gut aus.
ich habe das wohl nciht gerafft, das ich dann nur auf den user gruppieren (group by) darf.

Vielen Dank.

Stephen

Social bookmarks