MAIOR NUMERO EM UM FORMULARIO
Boas pessoal estou com um probleminha.
tenho em um form segue imagem pra melhor intendimento.
fiz um
SELECT FIRST 6 T.* FROM lotofacil T ORDER BY T.ID DESC
me retorno os ultimos 6 registros do banco logo apos fiz um
select count(*) AS total from temp_lotofacil t where (t.n1 = [Ô] & i & [Ô] or t.n2 = [Ô] & i & [Ô] or t.n3 = [Ô] & i & [Ô] or t.n4 = [Ô] & i & [Ô] or t.n5 = [Ô] & i & [Ô] or t.n6 = [Ô] & i & [Ô] or t.n7 = [Ô] & i & [Ô] or t.n8 = [Ô] & i & [Ô] or t.n9 = [Ô] & i & [Ô] or t.n10 = [Ô] & i & [Ô] or t.n11 = [Ô] & i & [Ô] or t.n12 = [Ô] & i & [Ô] or t.n13 = [Ô] & i & [Ô] or t.n14 = [Ô] & i & [Ô] or t.n15 = [Ô] & i & [Ô])[Ô]
que retornos a quantidade de vezes que cada numero saiu
agora gostaria de verificar os 25 números e dizer qual são os 20 números que mais saÃram e quantas vezes.
exemplo
nº 5 = 6
nº 18 = 6
nº 20 = 6
nº 1 = 4
nº 2 = 4
nº 3 = 4
nº 8 = 4
nº 10 = 4
nº 13 = 4
nº 14 = 4
nº 17 = 4
nº 21 = 4
nº 22 = 4
nº 23 = 4
nº 24 = 4
nº 4 = 3
nº 12 = 3
nº 15 = 3
nº 19 = 3
nº 6 = 2
tenho em um form segue imagem pra melhor intendimento.
fiz um
SELECT FIRST 6 T.* FROM lotofacil T ORDER BY T.ID DESC
me retorno os ultimos 6 registros do banco logo apos fiz um
select count(*) AS total from temp_lotofacil t where (t.n1 = [Ô] & i & [Ô] or t.n2 = [Ô] & i & [Ô] or t.n3 = [Ô] & i & [Ô] or t.n4 = [Ô] & i & [Ô] or t.n5 = [Ô] & i & [Ô] or t.n6 = [Ô] & i & [Ô] or t.n7 = [Ô] & i & [Ô] or t.n8 = [Ô] & i & [Ô] or t.n9 = [Ô] & i & [Ô] or t.n10 = [Ô] & i & [Ô] or t.n11 = [Ô] & i & [Ô] or t.n12 = [Ô] & i & [Ô] or t.n13 = [Ô] & i & [Ô] or t.n14 = [Ô] & i & [Ô] or t.n15 = [Ô] & i & [Ô])[Ô]
que retornos a quantidade de vezes que cada numero saiu
agora gostaria de verificar os 25 números e dizer qual são os 20 números que mais saÃram e quantas vezes.
exemplo
nº 5 = 6
nº 18 = 6
nº 20 = 6
nº 1 = 4
nº 2 = 4
nº 3 = 4
nº 8 = 4
nº 10 = 4
nº 13 = 4
nº 14 = 4
nº 17 = 4
nº 21 = 4
nº 22 = 4
nº 23 = 4
nº 24 = 4
nº 4 = 3
nº 12 = 3
nº 15 = 3
nº 19 = 3
nº 6 = 2
Cara eu faria o seguinte já que vai monstar essa informação sempre com as 6 ultimas linhas no momento em que estiver montando o grid carrega uma matriz que faz o incremento!!
Um exemplo rapido!!
Espero ter ajudado
Um exemplo rapido!!
Dim strMSG As String
Dim i As Integer
Dim x As Integer
Dim matValores(1 To 2, 1 To 25) As Variant
[ô]Carrega a matriz com as dezenas de 1 até 25
For i = 1 To UBound(matValores, 2)
matValores(1, i) = i
matValores(2, i) = 0
Next
[ô]Quando você fizer o SELECT para capturar as 6 ultimas linhas você vai carregar a matriz junto com o seu carregar do GRID
While Not rstTemp.EOF
For i = 1 To rstTemp.fields.Count - 1
For x = 1 To UBound(matValores, 2)
If rstTemp.fields(i).Value = matValores(1, x) Then
matValores(2, x) = matValores(2, x) + 1
Exit For
End If
Next
[ô]Aqui você determina a coluna do grid
Seugrid.coluna(1) = rstTemp.fields(i).Value
[ô]E assim por diante
Next
rstTemp.MoveNext
Wend
Call reordenaMatriz(matValores)
vSQL = [Ô][Ô]
For i = 1 To 20
strMSG = strMSG & matValores(1, i) & vbTab & [Ô] = [Ô] & matValores(2, i) & vbCrLf
MsgBox strMSG
Next
Public Sub reordenaMatriz(ByRef matriz)
Dim a, b As Integer
Dim auxA, auxB As Variant
For a = 1 To UBound(matriz, 2)
For b = a + 1 To UBound(matriz, 2) - 1
If Int(matriz(2, a)) < Int(matriz(2, b)) Then
auxA = matriz(1, a)
auxB = matriz(2, a)
matriz(1, a) = matriz(1, b)
matriz(2, a) = matriz(2, b)
matriz(1, b) = auxA
matriz(2, b) = auxB
End If
Next
Next
End Sub
Espero ter ajudado
Tópico encerrado , respostas não são mais permitidas