Produkttabelle, aber wie?

Hallo, ich wieder,

ich benötige eine Produkttabelle:

P_ID | P_Name | P_SerNr
1 | Karton1 | 101
2 | Karton2 | 102
3 | Karton1 | 103

wie man sehen kann, gibt es mehrere Produkte, die den selben Namen haben (aber natürlcih verschiedene Seriennummern).

Angezeigt werden soll nacher der Name und die Menge das Produkts:

P_Name | P_Anzahl
Karton1 | 2
Karton2 | 1

Macht man das mit 2 Tabelle mit Relation auf P_Name?
Wie funktioniert das mit der Anzahl, ich möchte mir nachher eine Karton nehem können (auswahl dur Sernummer) und dieser soll dann auch ausgetragen werden.

vielen Dank
frank

Mit count() und GROUP BY.

Wie funktioniert das mit der Anzahl, ich möchte mir nachher eine Karton nehem können (auswahl dur Sernummer) und dieser soll dann auch ausgetragen werden.

vielen Dank
frank

parse error.


Andreas

das ging ja schnell!

danke

parse error ?
für den Fall das du nicht weißt was ich meine:

Meine Ansicht der Tabelle (im Datagrid)
P_Name | P_Anzahl
Karton1 | 2
Karton2 | 1

ich habe ein Button ‘Entnehme’, nach drücken, bekomme ich eine Maske, in der ich den P_Name und die Seriennummer eingebe (z.B.)
Name= Karton
sn= 101

Und die Ansicht (oder Tabelle) ist nun:
P_Name | P_Anzahl
Karton1 | 1
Karton2 | 1

vielen dank

Guss
Frank

Ja. Wo ist nun das Problem? Das löschen eines speziellen Datensatzes? Dazu verwendest Du dessen PK. Oder das anzeigen des dann aktuellen Bestandes? Da machst das das SQL erneut, oder verwendest eine VIEW.

Andreas

hallo,
damit wir uns nicht missverstehen, diese Tabellen sind hingeschrieben, diese existieren also noch nicht.

Ich weiß nicht wie ich das mit der Anzahl machen soll

ich könnte eine Count Anweisung schreiben:
Select count (p_name) from produkte where p_name like “karton1”

abewr wie bekomme ich den Betrag in meine Anwendung?

Danke
Frank

Ja, da bekommst Du die Anzahl für alle ‘karton1’. Als Übersicht für alle:

test=# select * from produkte;
 id |  name   | sn
----+---------+-----
  1 | Karton1 | 101
  3 | Karton1 | 103
  2 | Karton2 | 102
(3 rows)

test=*# select name, count(1) from produkte group by name order by name;
  name   | count
---------+-------
 Karton1 |     2
 Karton2 |     1
(2 rows)



abewr wie bekomme ich den Betrag in meine Anwendung?

Danke
Frank

Welchen Betrag?

Andreas

Hallo,

Den Betrag der Anzahl, also die ‘2’.

Aber ich galube ich habs gefunden.

Die Methode ‘ExecuteScalar’ der Klasse ‘NpgsqlCommand’ gibt mir diesen Wert zurück.

vielen Dank

Frank