Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [VB.net] Query a campi incrociati

    come faccio s semplificare questa query?
    inoltre vorrei estrarre i record e ordinarli in base ad ogni categoria associata e alla fine di ogni estrazione degli articoli della categoria aggiungere una riga nel datagrid con i totali parziali e alla fine di tutto i totali definitivi.

    tipo nell'esempio in allegato
    esempio

    codice:
            Dim anagr As System.Data.OleDb.OleDbDataReader
            Dim dbComm As OleDbCommand = New OleDbCommand("SELECT * FROM articoli", conn)
    
            dbComm.CommandType = CommandType.Text
            Try
                anagr = dbComm.ExecuteReader()
            Catch ex As Exception
                Exit Sub
            End Try
            Do While anagr.Read
                
                Dim anagr3 As System.Data.OleDb.OleDbDataReader
                Dim dbComm3 As OleDbCommand = New OleDbCommand("SELECT qta,prezzoV_1 FROM scarico where codice=@cod and data between @dat_i and @dat_f", conn) '  group by prezzoV_1,prezzoV_2", conn)
                dbComm3.Parameters.AddWithValue("@cod", anagr("codice").ToString) '
                dbComm3.Parameters.AddWithValue("@dat_i", dtinizio.Text)
                dbComm3.Parameters.AddWithValue("@dat_f", dtfine.Text)
    
    
                dbComm3.CommandType = CommandType.Text
                Try
                    anagr3 = dbComm3.ExecuteReader()
                Catch ex As Exception
                    Exit Sub
                End Try
                Dim prezzo As Decimal = "0,00"
                Do While anagr3.Read
                    tot_scar = CDec(tot_scar) + CDec(anagr3("prezzoV_1"))
                    q_scar = q_scar + CDec(anagr3("qta"))
                    prezzo = anagr3("prezzoV_1")
    
                Loop
                Try
                    q_res = anagr("quantita").ToString
                    tot_res = CDec(prezzo * q_res)
                Catch
                End Try
    
                Dim anagr2 As System.Data.OleDb.OleDbDataReader
                Dim dbComm2 As OleDbCommand = New OleDbCommand("SELECT  quantita, prezzo FROM documenti_acq where codice=@cod", conn)
                dbComm2.Parameters.AddWithValue("@cod", anagr("codice").ToString)
                dbComm2.CommandType = CommandType.Text
    
                Try
    
                    anagr2 = dbComm2.ExecuteReader()
    
                Catch ex As Exception
                    Exit Sub
                End Try
                Do While anagr2.Read
                    Try
                        q_car = q_car + anagr2("quantita")
                        tot_car = tot_car + (CDec(anagr2("prezzo") * anagr2("quantita")))
                    Catch
                    End Try
                    'tot_car = tot_car * q_car
                Loop
                DataGrid.Rows.Add(anagr("codice").ToString, anagr("descrizione").ToString, q_car, FormatNumber(CDec(tot_car), 2, TriState.UseDefault), q_scar, FormatNumber(CDec(tot_scar), 2, TriState.UseDefault), FormatNumber(CDec(tot_scar) - CDec(tot_car), 2, TriState.UseDefault), q_res, FormatNumber(CDec(tot_res), 2, TriState.UseDefault), q_scar - q_car)
                q_scar = 0
                tot_scar = "0,00"
                q_car = 0
                tot_car = "0,00"
                q_res = 0
                tot_res = "0,00"
            Loop

  2. #2
    spero abbiate capito il mio problema!

  3. #3
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da davfrata
    spero abbiate capito il mio problema!
    A dire la verità proprio per nulla.

    Non puoi pretendere che chi legge debba indovini, o peggio ancora studiarsi, tutto il tuo codice.

    Non senza che tu abbia almeno spiegato PRIMA lo scenario e POI descritto nei dettagli quello che non va, o quello che vuoi ottenere e perchè.

  4. #4
    Beh, il codice che ho messo estrai gli articoli in base all'id e basta non da errori.

    Volevo però:
    1) innanzitutto semplificare la query utilizzando i join ma mi sono perso, invece di fare dei cicli in base alla categoria (gruppo) di articoli.
    2) cercare di ordinare l'estrazione come nel file allegato.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.