Buongiorno a Tutti,
volevo creare una soluzione elegante con una sola Query in sql server.
In una tabella NEWS seleziono le prime 5 notizie che hanno meno visualizzazioni(CONTATORE) così :
codice:
   Sqlmia.Append("Select")                If Massimo <> 0 Then
                    Sqlmia.Append(" TOP (" & Massimo & ") * ")
                Else
                    Sqlmia.Append(" * ")
                End If


                Sqlmia.Append(" From Tabnews WHERE (Visibile=1 AND (GETDATE() BETWEEN datainizio AND datafine) ) Order By Contatore ASC")
Poi vorrei incrementare il campo CONTATORE degli articoli selezionati, in modo tale che prende le notizie con meno VISUALIZZAZIONI.

Creo una lista NEWS e per aumentare il CONTATORE faccio così (anche se non mi funziona)

codice:
 Dim cmd As New SqlCommand(Sqlmia.ToString, Conn)                '    Dim Listy As New List(Of Int16)
                Dim Listay As New ArrayList
                Using RDR = cmd.ExecuteReader()
                    If RDR.HasRows Then
                        Do While RDR.Read


                            Dim g As New LcNews
                            g.Idx = RDR.Item("ID")
                            If (RDR.Item("Cat2") = Nothing) Or (RDR.Item("Cat2")) = "NESSUNA" Then
                                g.Cat1 = " Categoria : " & RDR.Item("Cat1")
                            ElseIf (RDR.Item("Cat1") = Nothing) Or (RDR.Item("Cat1")) = "NESSUNA" Then
                                g.Cat1 = " Categoria : " & RDR.Item("Cat2")
                            Else


                                g.Cat1 = " Categorie : " & RDR.Item("Cat1") & " " & RDR.Item("Cat2")
                            End If
                            g.Testoarticolo = RDR.Item("TEsto")
                            g.Titolo = RDR.Item("Titolo")
                            g.Di = RDR.Item("dataInizio")
                            g.Datacreato = RDR.Item("DataCreato")
                            ListaX.Add(g)
                            '        Listy.Add(g.Idx)
                            Listay.Add(g.Idx)
                        Loop


                    End If
                End Using


                Sqlmia.Clear()


                Sqlmia.Append("UPDATE  TabNews SET impressions +=1 where id IN (@Lista)")
               
                cmdr.Parameters.AddWithValue("@lista", Listay.ToArray)




                cmdr.ExecuteNonQuery()
Le ho provate tutte da List(of Int16) ad array ecc ecc, se al posto di @LISTA metto (30,31) allora fa l'UPDATE.
Siccome è troppo confussionario come codice, c'è modo di creare un'unica SQL per selezionare ed incrementare il CONTATORE di quegli ID articoli? Ho provato con Inner Join , LEFT ecc ecc ma nada.

Grazie a tutti