Die dann so aussehen könnte...
SQL-Code:
CREATE PROCEDURE MAKEOUTOUT ()
RETURNS (
Spalte1 Integer,
Spalte2 Integer,
Spalte3 Varchar(500),
Anzahl Integer
)
AS
DECLARE VARIABLE i INTEGER;
BEGIN
FOR SELECT Spalte1, Spalte2, Spalte3, Anzahl
FROM tabelle
INTO Spalte1, Spalte2, Spalte3, Anzahl DO
BEGIN
i = 0;
WHILE (i < Anzahl) DO BEGIN
SUSPEND;
i = i + 1;
END
END
END
Edit: Hier noch ein Hack, mit dem das auch einfach mit
SQL geht.
Dies setzt allerdings eine Tabelle mit Zahlen voraus.
SQL-Code:
SELECT *
FROM tabelle, anzahlen
WHERE zahl <= anzahl
Hier wird also eine neue Tabelle benötigt, die immer alle Zahlen von 1 bis zur maximal größten Anzahl in "tabelle" enthält. Wenn du da also einfach alle Zahlen von 1 bis 1000 einmal in solch eine Tabelle einträgst, sollte das vielleicht reichen.
Oder du erstellst deine
SQL-Abfrage dynamisch, dann kannst du diese Anzahl-Tabelle auch produzieren...
SQL-Code:
SELECT *
FROM tabelle, (SELECT 1 zahl FROM tabelle
UNION
SELECT 2 FROM tabelle
UNION
SELECT 3 FROM tabelle) anzahlen
WHERE zahl <= anzahl
Dies hat den Vorteil gegenüber einer SP, dass du bei Spaltenänderungen an deiner Tabelle die neuen Informationen schneller in deinem Report zur Verfügung hast. Bei einer SP musst du da erst alle neuen Spalten durchschleppen.
Dies würde unter
MSSQL mit einer Benutzerdefinierten Funktion noch viel geschickter gehen, aber das ist eine andere Geschichte...
War nur so eine Idee...