Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Group By ! [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Group By !


 
churcher
29-06-2004, 22:04 
 
hallo!

habe 2 tabelen (1. Lagerprotokoll & 2. Artikelstamm) habe beide miteinander verknüpft und die auswertung funktioniert mittlerweile auch
aber nun zu meinen problem (siehe vereinfacht darstellung)


jetzt:

Art.iD| Grund | Menge
---------------------------------------
H1 | Ausgebucht | 100
H1 | Eingebucht | 3
H2 | Verschenkt | 50
H3 | Schwund | 40

so hätte ich es gern:

Art.iD| Ausgebucht | Eingebucht | Verschenkt usw...
--------------------------------------------------------------------
H1 | 50 | 100 | 1
H2 | 30 | 3 | 6
H3 | 20 | 50 | 7

habe es schon mit GROUP BY versucht aber leider habe ich das auch nicht hinbekommen hier der codeteil:


WHERE $search_set_prot GROUP BY lager_prot.art_id,lager_prot.grund ORDER BY $ordnen $rank


wäre echt dankbar wenn mir hier wer weiterhelfen kann. danke schon mal
lg


hier mein aktueller code (vereinfacht)


$prot_f=mysql_query("SELECT

lager_prot.prot_id,
lager_prot.art_id,
lager_prot.datum,
lager_prot.grund,
lager_prot.wert,
lager_prot.menge,

art.art_id,
art.art_nr,
art.art_haupt,
art.prod_art,
art.prod_gruppe

FROM lager_prot,art WHERE $search_set_prot ORDER BY $ordnen $rank");
while($row_prot=mysql_fetch_array($prot_f))
{
$art_id=$row_prot[art_id];
$menge=$row_prot[menge];
$grund=$row_prot[grund];
?>

<input type="text" name="art_nr" value="<? echo $row_prot[art_nr]; ?>" />
<input type="text" name="art_haupt" value="<? echo $row_prot[art_haupt]; ?>" />
<input type="text" name="grund" value="<? echo $grund; ?>" />
<input type="text" name="menge" value="<? echo $menge; ?>" />

 
asp2php
29-06-2004, 22:28 
 
Original geschrieben von churcher


WHERE $search_set_prot GROUP BY lager_prot.art_id,lager_prot.grund ORDER BY $ordnen $rank



WHERE art.art_id=lager_prot.art_id AND $search_set_prot ...

 
churcher
29-06-2004, 22:32 
 
hi!

habe vergessen das hier noch zu posten:

$search_set_prot="
(art.art_haupt LIKE '%".$art_haupt."%') AND
(lager_prot.datum BETWEEN '".$start_fs."' AND '".$ende_fs."' ) AND
lager_prot.art_id=art.art_id";

@asp2php so bekomme ich die lösung was ich habe wo alle einträge in einzelen zeilen aufgelsitet werden möchte aber das jeder artikel nur einmal da steht und die mengen aufsummiert werden für ausgebucht , eingebucht usw... hoffe du weißt was ich meine

lg

 
mrhappiness
29-06-2004, 22:38 
 
,,,,,

die fehlen bei dir :-) (evtl. hab ich auch eins zuvieloder zuwenig)


was dein problem angeht:
das wirst dumit mysql alleine nicht hinkriegen

du musst nach den spalte artikelid und grund gruppieren und nach artikelid und grund sortieren

in php machst du dann, solange die artikelid sich nicht ändert, eine neue spalte, anderenfalls eine neue zeile deiner ausgabetabelle

 
churcher
29-06-2004, 22:42 
 
stimmt bin ,,, faul :-)

das habe ich befürchtet und nun weiß ich zwar wie das ziel aussieht,
aber nicht wie ich hinkomme-

die problematik sehe ich da noch bei der aufsummierung da ich ja mehrer datensätze nun zusammenfassen muss

 
mrhappiness
29-06-2004, 22:43 
 
Original geschrieben von mrhappiness
du musst nach den spalte artikelid und grund gruppieren und nach artikelid und grund sortieren

in php machst du dann, solange die artikelid sich nicht ändert, eine neue spalte, anderenfalls eine neue zeile deiner ausgabetabelle probier's doch wenigstens mal

 
churcher
29-06-2004, 22:46 
 
@mrhappiness werde für heute schluss machen habe heute,
schon 6 stunden mit diesem problem zu tun, werde morgen mit neuen
kräften an das ganze ran gehen

falls da noch fragen gibt, hoffe ich das ich mich da morgen noch melden darf

wünsch auch was,
lg

 
fuser
30-06-2004, 08:46 
 
Hallo churcher
Geht mit SQL und if:

select
artid,
sum(if (grund="Ausgebucht",menge,0)) as ausgebucht,
sum(if (grund="Eingebucht",menge,0)) as eingebucht,
sum(if (grund="Verschenkt",menge,0)) as verschenkt,
sum(if (grund="Schwund",menge,0)) as schwund
from ...
where ...
group by artid

 
churcher
30-06-2004, 19:12 
 
danke genau so wie ich es wollte, vielen lieben dank

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:27 Uhr.