SELECT DISTINCT ISNULL(iPostParentId, iPostId) AS iPostThreadId FROM tblForumPost p
Och den gör vad jag vill att den ska göra (tror jag). Problemet är bara att jag vill få ut resten av kolumnenrna och inte bara iPostThreadId.
Skriver jag , p.* efter så får jag ett felmeddelande.
Och hur är det med DISTINCT. Kan man välja vilken ordning den plocka de enskilda sakerna?
Om jag skriver ORDER BY dPostCreationDate, går den i den ordningen då?
Jag vill att när man söker på "." så ska man bara få fram den första tråden. Den som är förälder och har iPostId 25. Och iPostThreadId ska vara 25.
Söker man på "txt" så ska man få fram den andra som har iPostId 26. iPostThreadId ska då också vara 25.
Finns det sen ett helt annat inlägg med bodyn Txt... så vill jag att den ska visas.
Därför tycker jag att SQLen jag skrev först verkar funka utmärkt. Men av den får jag ju inte ut de andra kolumnerna.
select coalesce(iPostParentId,iPostId), tabellen.* from tabellen
where iPostId in (select min(iPostid) from tabellen
where sPostBody like '%Txt%'
group by iPostparentId)
select coalesce(iPostParentId,iPostId), tabellen.* from tabellen
where iPostId in (select min(iPostid) from tabellen
where sPostBody like '%Txt%'
group by coalesce(iPostparentId, iPostId))
Eftersom att LarsGs kod inte funkade som den skulle och min gjorde det så måste det betyda att jag är bättre än honom på SQL!
Men om jag vill ha andra villkor, t.ex.:
WHERE iPostClubId = 2
WHERE sPostSubject LIKE '%..%'
WHERE iPostMemberId = 1
WHERE dPostCreationDate > CONVERT(DATETIME, '2001-11-07 15:01:15.000', 21)
Var skriver jag dessa då? Innanför parantesen eller sist?