ArneMedlem sedan maj 2000267 inlägg Har en grid där jag visar medlemmar som valt att visa sin blogg.
Mitt problem är att jag skulle välja lägga till en kolumn och sortering från tabellen "blogg" där den som senast skrivit ett inlägg visas överst. Men mina tappra försök att lägga till tabellen "blogg" i select satsen nedan gör att ett namn visas antalet ggr som medlemmen har skrivet ett inlägg.
tabellen heter blogg och kolumnen fidnr = f.id
Kolumnen "inlagddatum" i tabellen blogg är smalldatetime
Så här ser nuvarande select sats ut (utan tabellen blogg)
SELECT f.id, f.klubbid, f.namn, f.ort, k.klubb FROM dbo.fidreg AS f INNER JOIN dbo.sdsfklubb AS k ON f.klubbid = k.id Where visa_blogg = @visa_blogg And blogg = @blogg
Använder MS SQL server 2008
Nu ser jag inte vilken tabell som blogg id:t ligger i. Men denna lösningen är ett alternativ:
SELECT * FROM (
SELECT f.id, f.klubbid, f.namn, f.ort, k.klubb,
(SELECT MAX(insertdate) from blogg where blogg.id = f.blogg) AS LatestInsertDate
FROM dbo.fidreg AS f
INNER JOIN dbo.sdsfklubb AS k ON f.klubbid = k.id
Where visa_blogg = @visa_blogg And blogg = @blogg) as drv
ORDER BY drv.LatestInsertDate
aasahMedlem sedan mars 20034 471 inlägg
Arne skrev:
Har en grid där jag visar medlemmar som valt att visa sin blogg.
Mitt problem är att jag skulle välja lägga till en kolumn och sortering från tabellen "blogg" där den som senast skrivit ett inlägg visas överst. Men mina tappra försök att lägga till tabellen "blogg" i select satsen nedan gör att ett namn visas antalet ggr som medlemmen har skrivet ett inlägg.
Sorteringen är enkel att få till (när man vet hur man gör) men för att kunna ge ett bra förslag måste jag förstå hela frågan och jag är inte riktigt säker på hur du menar. Vad innehåller den kolumn från blogg som du vill lägga till? Är det datumet personen senast postat (alltså den kolumn du vill sortera efter) eller är det en annan kolumn? Kommer den att ha olika värden för samma postare eller är det lika för alla postarens rader?
ArneMedlem sedan maj 2000267 inlägg 3 tabeller
3 tabeller, fidreg (medlemmarna), sdsfklubb och blogg
Från tabellen fidreg vars kolumnen id är medlemsnumret hämtar jag id, namn, ort och klubbid
Från tabellen sdsfklubb (klubbregister) hämtar jag namnet på klubben från kolumnen klubb
fidreg.klubbid = sdsfklubb.id
Från tabellen blogg vill jag hämta datumet på medlemmarna senaste blogginlägg som jag vill griden ska sortera på.
blogg.fidnr = fidreg.id
Kolumnen inlagddatum i tabellen blogg är datumet som inlägget får när dom skapar ett nytt inlägg.
Så en medlem kan ju ha 100 inlägg i tabellen blogg med olika inlagddatum.
Hoppas det blev förstårligt....
aasahMedlem sedan mars 20034 471 inlägg SELECT
f.id,
f.klubbid,
f.namn,
f.ort,
k.klubb,
X.LastPostDate
FROM
dbo.fidreg AS f
INNER JOIN dbo.sdsfklubb AS k ON f.klubbid = k.id
INNER JOIN ( -- Sista bloggdatum per användare
SELECT
b.fidnr,
MAX(b.inlagddatum) as LastPostDate
FROM
blogg b
GROUP BY
b.fidnr
) AS X ON
f.id = X.fidnr
WHERE
visa_blogg = @visa_blogg And blogg = @blogg
ORDER BY
X.LastPostDate DESC -- Senast överst