Thread Größten Wert in mehrstufigem Hash finden (20 answers)
Opened by Stefan_S at 2018-03-15 09:46

Stefan_S
 2018-03-15 09:46
#188150 #188150
User since
2014-04-15
30 Artikel
BenutzerIn
[default_avatar]
Hallo allerseits,

mit folgendem Code schreibe ich Artikeldaten in den Hash %tc_artikel:
Code (perl): (dl )
1
2
3
4
5
$tc_artikel{$tc_timestamp}->{$tc_artikel_id}->{$tc_charge_id} = {
        artikel_nr      => $tc_artikel_nr,
        bestand         => $tc_chargenbestand,
        charge          => $tc_charge,
}


Das Ergebnis sieht so aus:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
'1521033260' => {
'2111' => {
'10' => {
'artikel_nr' => 'AGI15030',
'bestand' => '3120.00',
'charge' => 'RSG'
},
'3' => {
'artikel_nr' => 'AGI15030',
'bestand' => '1450.00',
'charge' => 'Event Management'
}
}
},
'1521033526' => {
'2111' => {
'10' => {
'artikel_nr' => 'AGI15030',
'bestand' => '3150.00',
'charge' => 'RSG'
},
}
},
'1521033630' => {
'2111' => {
'10' => {
'artikel_nr' => 'AGI15030',
'bestand' => '3110.00',
'charge' => 'RSG'
},
'3' => {
'artikel_nr' => 'AGI15030',
'bestand' => '1100.00',
'charge' => 'Event Management'
}
}
}
};

Der erste Key ist der Timestamp. Damit vermeide ich, dass Werte, deren 2 folgende Keys identisch sind, überschrieben werden.
Der zweite Key ist die Artikel-ID.
Der dritte Key ist die Chargen-ID.

Ich möchte nun den größten Bestand eines Artikels innerhalb einer Charge herausfinden. Ich habe dann nur noch einen Datensatz je Artikel und Charge, so dass ich den Timestamp nicht mehr brauche.

Das Ergebnis sollte ungefähr so aussehen:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
'2111' => {
'10' => {
'artikel_nr' => 'AGI15030',
'bestand' => '3150.00',
'charge' => 'RSG'
},
'3' => {
'artikel_nr' => 'AGI15030',
'bestand' => '1450.00',
'charge' => 'Event Management'
}
},
},


Weiß jemand Rat?

Viele Grüße Stefan

Edit: 09:47 Rechtschreibkorrektur
Last edited: 2018-03-15 09:47:37 +0100 (CET)

View full thread Größten Wert in mehrstufigem Hash finden