Avatar billede bambinogrande Nybegynder
24. januar 2003 - 14:19 Der er 10 kommentarer og
1 løsning

SQL question!

Hej med jer,-

Jeg har en nyheds side, hvor man kan vælge nyhederne fra en dropdownlist.

Men det ser jo lidt latterligt ud, at når man kommer ind på siden at den er blank, så jeg vil have den seneste nyed vist på siden når den loades.

Det har jeg også lavet, men deter alle nyheder der bliver vist.

Jeg har en SP som ser sådan her ud:

ALTER PROCEDURE GetNewsOnLoad

AS

BEGIN

SELECT
    News.NewsID, News.Topic, News.SubTopic, News.News, News.NewsDate, News.Publisher
FROM
    News
ORDER BY News.NewsID DESC
END

Hvad skal jeg smide der ind, for at kun den nyhed med det højeste ID bliver vist?

Mvh

/B.G.
Avatar billede rasmusmoller Nybegynder
24. januar 2003 - 14:21 #1
Hvad med:

SELECT
    News.NewsID, News.Topic, News.SubTopic, News.News, News.NewsDate, News.Publisher
FROM
    News
WHERE News.NewsID = (SELECT MAX(NewsID) FROM News)
ORDER BY News.NewsID DESC
Avatar billede rasmusmoller Nybegynder
24. januar 2003 - 14:22 #2
Du behøver nok til gengæld ikke have "order by" med mere :-)
Avatar billede proaccess Nybegynder
24. januar 2003 - 14:23 #3
MS SQL må da have en indbygget LIMIT

prøv med:
SELECT TOP 1 News.NewsID...

eller

SELECT ...  ORDER BY N... DESC LIMIT 1
Avatar billede ocp Nybegynder
24. januar 2003 - 14:26 #4
Select top 1 er det korrekte svar!
Avatar billede bambinogrande Nybegynder
24. januar 2003 - 14:29 #5
Rasmusmoller virker!

LIMIT 1 virker ikke og Top 1 så er det ikke den sidste der bliver vist!

Men tak for hjælpen begge to!

Og go weekend til jer! ;-)

Mvh

/B.G.
Avatar billede bambinogrande Nybegynder
24. januar 2003 - 14:31 #6
Hvorfor syntes du at TOP 1 er det rigtige!

TOP 1 viste ikke den sidste nyhed.

Det er gør den her:

WHERE News.NewsID = (SELECT MAX(NewsID) FROM News)
Avatar billede proaccess Nybegynder
24. januar 2003 - 14:40 #7
SELECT TOP 1
    News.NewsID, News.Topic, News.SubTopic, News.News, News.NewsDate, News.Publisher
FROM
    News
ORDER BY News.NewsID DESC

Burde da give dig den seneste nyhed, endda uden at det er nødvendigt med sub-queries...
Avatar billede websmith Nybegynder
24. januar 2003 - 14:44 #8
Ja eller
SET ROWCOUNT 1
SELECT News.NewsID, News.Topic, News.SubTopic, News.News, News.NewsDate, News.Publisher
FROM
    News
ORDER BY News.NewsDate DESC
Avatar billede websmith Nybegynder
24. januar 2003 - 14:45 #9
forudsat at den nyeste nyhed har den højeste dato :)
Avatar billede bambinogrande Nybegynder
24. januar 2003 - 14:52 #10
Der er mange løsnings forslag........

Men den mest fede T-SQL query er altså:

WHERE News.NewsID = (SELECT MAX(NewsID) FROM News)

Så kan i sige hvad i vil! ;-)

Enig?!?!?!?!
Avatar billede websmith Nybegynder
24. januar 2003 - 19:58 #11
Jeg er ikke sikker, jeg tror faktisk at min løsning er hurtigere, specielt, hvis der er mange records i databasen.

Den accepterede løsning kræver jo to select's, hvor min kun kræver en.

Men jeg er ikke sikker :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Ringkjøbing Landbobank – Nordjyske Bank

Forretningsudvikler til procesoptimering

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Sektionschef til Enterprise Arkitektur i Forsvaret på Østerbro

Politiets Efterretningstjeneste

IT-frontdesk medarbejder til PET's IT Servicedesk

Capgemini Danmark A/S

IGNITE Graduate Program 2026

Netcompany A/S

Linux Operations Engineer