webForumDet fria alternativet

Vågar man fråga om en ny SQL???

3 svar · 204 visningar · startad av saw

sawMedlem sedan mars 20011 880 inlägg
#1

Det är knappast att jag vågar fråga, med tanke på det besvär som LarsG fick med mig sist.. ;)

Jag skulle vilja ha reda på hur många gånger det bästa resultatet förekommer i tabellen t_datum
D.V.S, om t ex My Friend har varit 1:a 14 ggr i Sverige och 2:a 5 ggr i Europa, så ville jag ha fram resultat som så.

Fälten heter PlaceringSv,PlaceringEu och PlaceringVärlden.
främmande nyckel är Sång_ID som är relaterad till t_songtitlar med nycklen titel_Id. Detta skulle då grupperas via songtitlar.

Jag har lyckats med att skapa fram frågorna i ACCESS, men som jag har gjort det, så blir det en fråga för bästSv, en för bästEu en för bästVärld.

Därefter så skapade jag en fråga om antal av förekomsten(1) inga problem, men när jag sedan skulle dra igång allt via VB, då ändrade jag vilkoret i den sista SQL:en så att den skulle peka på bästSv.
Resultat, jag fick information, men så fort som jag ändrade till någon annan titel(via en listbox) fick jag patrull "no current record".
Inebör detta att jag måste loopa min andra SQL?

Tacksam för svar. ;)

skymanMedlem sedan juli 20012 450 inlägg
#2

Ska du leta efter 1 resp 2 och 3 i varje rad i t_datum eller ska du räkna i hela t_datum, oberoende av vilken kolumn de står i?

group by är väl att rekomendera gissar jag.

sawMedlem sedan mars 20011 880 inlägg
#3

Jag chansar vidare på att få hjälp :e

Min SQL tar fram max, min och medium utan problem.

SQL = "SELECT t_SongTitlar.songtitel, Min(t_Datum.PlaceringSv) AS BästSv, Max(t_Datum.PlaceringSv)" & _
" AS SämstSv, Avg(t_Datum.PlaceringSv) AS MedelSv, Min(t_Datum.PlaceringEu) AS BästEu, Max(t_Datum.PlaceringEu)" & _
" AS SämstEu, Avg(t_Datum.PlaceringEu) AS MedelEu, Min(t_Datum.PlaceringVärlden) AS BästVärld, " & _
" Max(t_Datum.PlaceringVärlden) AS SämstVärld, Avg(t_Datum.PlaceringVärlden) AS MedelVärld " & _
" FROM t_SongTitlar LEFT JOIN t_Datum ON t_SongTitlar.titel_Id = t_Datum.Sång_ID" & _
" where t_SongTitlar.songtitel = '" & strSångText & "' GROUP BY t_SongTitlar.songtitel"
Set mittRS2 = minDB.OpenRecordset(SQL, dbOpenDynaset)

ifrån denna vill jag använda strBäst = mittRS2!BästSv(till en början) i SQL2

SQL1 = "SELECT Count(t_SongTitlar.songtitel) AS Antalförsongtitel, t_Datum.PlaceringSv, t_SongTitlar.songtitel" & _
" FROM t_SongTitlar INNER JOIN t_Datum ON t_SongTitlar.titel_Id = t_Datum.Sång_ID " & _
" GROUP BY t_Datum.PlaceringSv, t_SongTitlar.songtitel " & _
" HAVING t_Datum.PlaceringSv=1 AND t_SongTitlar.songtitel='" & strSångText & "'"

Set mittRS1 = minDB.OpenRecordset(SQL1, dbOpenDynaset)

Som den är nu så fungerar den, men SQL1 tar bara fram där resultatet är 1, därför så ville jag använda mig av strBäst = mittRS2!BästSv där det står 1, men jag får fel, few parametes expecting one... :(
Vad göra?

sawMedlem sedan mars 20011 880 inlägg
#4

LÖST :i
Fnutt-problem...
:P

132 ms totalt · 3 externa anrop · v20260731065814-full.beb2e261
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)