SQL - Rezeptsystem - Schnittmenge
Geizhals » Forum » Programmierung » SQL - Rezeptsystem - Schnittmenge (7 Beiträge, 362 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
SQL - Rezeptsystem - Schnittmenge
16.05.2012, 10:34:09
Morgen,

gegeben sei ein Ofen zum Brötchen backen. Weiters eine Tabelle mit Rezeptdaten, für die verschiedenen Brotsorten, mit den Spalten

type       lowerLimit upperLimit
baguette   200        240
roggenbrot 180        210
weizenbrot 190        215

key sei die Brotsorte.

Nun möchte ich eine sp erstellen, welcher ich x Sorten übergebe, die sich bereits im Ofen befinden, und eine welche jetzt rein soll (das Handling der Parameter stellt nicht das Problem dar).

Die sp soll mir den Temperaturbereich zurückliefern den ich einstellen darf, damit alle Rezepte eingehalten werden. Wenn das nicht möglich ist, liefer ich das zurück. Fixiert euch nicht aufs Brot, das ist nur metaphorisch ;)

Also beispielsweise ich übergeb baguette und roggenbrot als drinnen, und weizenbrot als einzufördern. Dann sollte er 200 und 210 zurückliefern.

Es sei angenommen daß nur natürliche Zahlen gültig sind.

Ich möchte aber nicht xyz mal joinen.

Im Prinzip wäre es ja ein min/max des INTERSECT der natürlichen Zahlen der verschiedenen Temperaturbereiche. Allerdings steh ich grad aufm Schlauch wie ich ein SELECT zusammenbau, welches mir die natürlichen Zahlen eines Bereiches zwischen zwei Limits zurückliefert. Ich nehme mal an da gibts was einfaches (bzw. hoffe es), aber wenn man nicht weiß nach was man suchen soll, tut man sich sowohl in den Books online als auch mitm Google schwer.

Ich könnt mir natürlich eine temporäre Table mit den Zahlen befüllen, aber schön ist was anderes. Wobei, sooo schlimm würds gar net ausschaun:

CREATE FUNCTION [dbo].[ufn_GenerateIntegers] ( @MinValue INT, @MaxValue INT )
RETURNS @Integers TABLE ( [IntValue] INT )
AS
BEGIN
    WHILE @MinValue <= @MaxValue
    BEGIN
        INSERT INTO @Integers ( [IntValue] ) VALUES ( @MinValue )
        SET @MinValue = @MinValue + 1
    END

    RETURN
END
GO

SELECT * FROM [dbo].[ufn_GenerateIntegers] ( lowerLimit, upperLimit)



Any ideas?

Ev. hab ich ja auch einen völlig falschen Ansatz.

16.05.2012, 10:40 Uhr - Editiert von zeddicus, alte Version: hier
Diskussion beendet PM Alle Chronologisch
 
Melden nicht möglich
.  Re: SQL - Rezeptsystem - Schnittmenge  (hannesgi am 16.05.2012, 10:42:51)
..  Re(2): SQL - Rezeptsystem - Schnittmenge  (hannesgi am 16.05.2012, 10:43:53)
..  Re(2): SQL - Rezeptsystem - Schnittmenge  (zeddicus am 16.05.2012, 10:51:48)
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung