Hallo!

> >SELECT TOP 1 * FROM tabelle ORDER BY RAND(id * DATEPART(ms, 
> GETDATE())).
> >(Achtung, �berlauf ist bei gro�en Werten f�r [id] m�glich)
> leider wird in diesem Fall auch immer der gleiche Datensatz 
> angezeigt, immer
> der erste..

Bei mir werden da immer unterschiedliche Datens�tze angezeigt. Die
Millisekunden und der Identifier sorgen f�r eine entsprechende Streuung.
M�glicherweise ist die Datenmenge so klein, dass selbst Millisekunden nichts
n�tzen. Dann m�sstest Du einen langsameren Rechner nehmen. ;-)

> >Eine Datenbank darf halt keine zuf�lligen Ergebnisse liefern. ;-)
> stimmt ebenfalls, wie kann ich das anderweitig l�sen immer 
> einen anderen
> Tipp des tages auf
> der Website anzuzeigen??

Das w�rde ich anders gestalten: Als "Tipp des Tages" h�tte ich gerne immer
den neuesten Tipp, sofern er nicht in den letzten 7, 14 oder 30 Tagen
angezeigt wurde, also so etwas wie

DECLARE  @Tipp INTEGER

SELECT   TOP 1 @Tipp = id
FROM     Tipps
WHERE    dateShown = GETDATE() OR
         DATEDIFF(d, dateShown, GETDATE()) > 7
ORDER BY dateCreated DESC

UPDATE   Tipps
SET      dateShown = GETDATE()
WHERE    id = @Tipp

SELECT   *
FROM     Tipps
WHERE    id = @Tipp

Na ja, mit einem IF EXISTS kann man das noch etwas eleganter machen.

Freundliche Gr��e
Joachim van de Bruck

_______________________________________________
Database.asp mailing list
[EMAIL PROTECTED]
http://www.glengamoi.com/mailman/listinfo/database.asp

Antwort per Email an