doggelitoMedlem sedan juni 20003 100 inlägg
Halåjs!
Nått är tok med denna, vad?
strViewAllByDate = "Select Fq.Heading, Fa.Heading From " & _
"Forum_Questions Fq Left Join Forum_Answers Fa On " & _
"Fq.Questionid = Fa.Questionid " & _
"Order By case when Fq.regdate > Fa.Regdate then 0 else 1 end, Fa.Regdate Desc ;"
Den ska alltså känna av det nyaste datumet i de två tabellerna, är datumet nyast i questions så visas den frågan men är datumet nyast i answers så visas den frågan, precis som här på webforum typ!
LarsGMedlem sedan dec. 200012 465 inlägg
Hur då på tok?
Vilken DBMS?
doggelitoMedlem sedan juni 20003 100 inlägg
sql-server 7
Jo, den sorterar oavsett nyaste datumen efter det senaste datumet i Question-tabellen (ignorerar alltså Answers-tabellen´s datum)
doggelitoMedlem sedan juni 20003 100 inlägg
hmm, det är ju så klart bara för joinen, den jämför väl då bara datumen som ingår i den då, eller?
jag lär nog skriva im selecten antar jag eller kan man jämföra
samtliga datum som finns i tabellerna men ändå göra joinen, förstår ni?
doggelitoMedlem sedan juni 20003 100 inlägg
så här ungefär ska det hela fungera (fast med bara en select)
obs förenklad variant!
strOrder = "Select Top 1 Fq.Regdate, Fa.Regdate From " & _
"Forum_Questions Fq, Forum_Answers Fa " & _
"Order by Fq.Regdate Desc, Fa.regdate Desc ;"
If rs(0) > rs(1) then
Ordervalue = Fq.Regdate Desc
Else
Ordervalue = Fa.Regdate Desc
End If
strViewAllByDate = "Select Fq.Heading, Fa.Heading From " & _
"Forum_Questions Fq Left Join Forum_Answers Fa On Fq.Questionid = Fa.Questionid " & _
"Order By " & Ordervalue & " ;"
doggelitoMedlem sedan juni 20003 100 inlägg
Har precis kommit på att jag är fel ute.
Case körs ju bara en gång så då kommer nyaste frågan/svaret
överst och sen sorterar den efter svarsdatum, det är ju inte rätt.
Finns det nån lösning på detta eller lär jag skala ner och bara
använda en tabell till både fråga och svar, eller? :l
Jag vill ju bara baka ihop fråge- och svarsdatumen och sortera i
datumordning som här på fina goa webForum!!!
@ndersMedlem sedan juni 200026 914 inlägg
Borde man inte kunna göra något sånt här? (pseudo)
SELECT Fält1, Fält2, (CASE WHEN datum1>datum2 THEN datum1 ELSE datum2 END) AS datumfält FROM tabellen ORDER BY datumfält DESC
Då borde du få ett nytt datumfält som innehåller det senaste av de två datumen, som du sedan kan sortera på.
Mvh,
doggelitoMedlem sedan juni 20003 100 inlägg
nope :l
då sorterar den väl på antingen endast fråga eller endast svar, eller?
det vore ju fint om man tex:
1. skriver en ny fråga, då hamnar den överst.
2. skriver ett svar på en gammal fråga, då hamnar den överst.
3. svarar på första frågan (punkt 1) och då hamnar den överst igen.
det borde ju inte vara så svårt att lösa, jag har fått en bugg i huvudet så jag behöver lite hjälp med tankeverksamheten. :OO
i nuläget har jag alltså två tabeller med ett datum i båda.
skulle det bli enklare tro om jag lägger till ett extra datumfält i frågetabellen, som uppdateras så fort ett svar skrivs?
doggelitoMedlem sedan juni 20003 100 inlägg
Låg och drömde om denna fråga igår natt och kom faktiskt fram till en enkel lösning:
Två datumfält i frågetabellen, startdatum samt sorteringsdatum.
skriver man en ny fråga så läggs datum in i båda kolumnerna och skriver man ett svar så uppdateras sorteringsdatum-kolumnen.
Tänk att man alltid ska krångla till det!