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!