| Forum: SQL |
Thema:
AW: AW: AW: Abfrage mehrere Zeilen mit nur einem Ergebnis |
Von:
Guido Nachtigall (
27.11.2006 12:00) |
Klar :
javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$LeftSide$LinkButton1", "", true, "Posting", "", false, true))
speichern
CREATE PROCEDURE TopCustomer (OUT TopCompany CHAR(35), OUT TopValue INT)
BEGIN
DECLARE err_notfound EXCEPTION
FOR SQLSTATE '02000';
DECLARE curThisCust CURSOR FOR
SELECT company_name,
CAST(sum(sales_order_items.quantity *
product.unit_price) AS INTEGER) VALUE
FROM customer
LEFT OUTER JOIN sales_order
LEFT OUTER JOIN sales_order_items
LEFT OUTER JOIN product
GROUP BY company_name;
DECLARE ThisValue INT;
DECLARE ThisCompany CHAR(35);
SET TopValue = 0;
OPEN curThisCust;
CustomerLoop:
LOOP
FETCH NEXT curThisCust
INTO ThisCompany, ThisValue;
IF SQLSTATE = err_notfound THEN
LEAVE CustomerLoop;
END IF;
IF ThisValue > TopValue THEN
SET TopValue = ThisValue;
SET TopCompany = ThisCompany;
END IF;
END LOOP CustomerLoop;
CLOSE curThisCust;
END
Grüße Guido
| Betreff |
Von |
Datum |
|
|
|
|
Martin
Mostögl
|
27.11.2006 12:18 |
|
|
|
|
M
Merlin
|
29.11.2006 10:13 |
|
|
|
|
Guido
Nachtigall
|
29.11.2006 10:32 |
|
|
  |
AW: AW: AW: AW: AW: AW: Abfrage mehrere Zeilen...
| OK. Danke...<br>Ich hätte da aber noch eine spezielle Frage..!<br><br>z.B. Ich habe ein Select, in der ich mehrere Datensätze zurückbekomme. Ich möchte nun solange eine Schleife durchlaufen, wie ich... |
 |
 |
 |
|
|
M
Merlin
|
29.11.2006 12:34 |
|
|
  |
AW: AW: AW: AW: AW: AW: AW: Abfrage mehrere...
| Hallo, Merlin
Mit dem Fetch kannst du die Felder deines Selects in eine Variable packen.
Wenn eines dieser Felder oder mehrere den entsprechenden Wert haben, kannst du mit ein Insert zusammenbasteln,... |
 |
 |
 |
|
|
Guido
Nachtigall
|
29.11.2006 12:44 |
|
|
  |
AW: AW: AW: AW: AW: AW: AW: AW: Abfrage...
| Das hab ich soweit verstanden....<br>Aber wie kann ich eine "Loop"-Anweisung definieren?<br>Wie kann ich nach bestimmten bedingungen die Loop-Anweisung beenden...etc.<br>Hast du da evtl. noch mal nen Link,... |
 |
 |
 |
|
|
M
Merlin
|
29.11.2006 16:29 |
|
|
  |
AW: AW: AW: AW: AW: AW: AW: AW: AW:...
| Ein Beispiel:
declare
v_summe number := 0;
v_pos_preis number;
cursor c_auftrag_pos is
select anzahl*preis from auftrag_pos;
begin
OPEN c_auftrag_pos;
loop --> beginnt... |
 |
 |
 |
|
|
Guido
Nachtigall
|
30.11.2006 08:03 |
|
|
|
|
M
Merlin
|
30.11.2006 11:45 |
|
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!