Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Aiuto procedura

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    162

    Aiuto procedura

    Ciao a tutti,

    devo prelevare da una tabella di database(sqlserver 2005 express edition) così strutturata(id,operatore(testo),campagna(testo),ve ndite(testo),Data(DateTime)),il progetto è fatto in asp.net 2.0 e c#.net 2.0

    da questa tabella io devo prelevare il totale delle vendite in base ad una ricerca fatta per campagna e un range di date però c'è da considerare che alcune di queste vendite valgono doppio, e quindi di mezzo c'è anche una condizione e alla fine raggrupparle con un group by.

    io ho pensato di fare una store procedure dove creo un cursore che mi prende uno alla volta i record, nel frattempo ho creato una tabella temporanea, gli faccio un if se quella vendita corrisponde e li inserisco nella tabella temporanea.

    Mi potete dare un condiglio e/o una mano su questa store procedure?

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    559
    beh se usi un cursore puoi inizializzare una variabile a zero, quindi fai la select e per ogni riga
    1) ricavi il valore della vendita (normale o doppio)
    2) incrementi la variabile

    alla fine fai

    select @totale

    domanda, come fai a capire quando una vendita vale doppio?
    se nella vita avro avuto la possiblita di aiutare qualcuno non avro vissuto invano (E. Dikinson)

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    162
    Innanzitutto grazie per il tuo tempestivo intervento.

    ti devo correggere un attimo sul discorso della select dove io non ricavo il valore numerico,ma di tipo stringa,e quindi di conseguenza dovrò fare una funzione a parte con dei select - case dove ogni tipo di stringa darà il valore a parte oppure con un if del tipo:


    if vendita="esempio" or vendita="esempio1" ect..

    @totale=toale+1;


    e fin qui con la logica ci siamo ma a livello di pratica non mi funziona granchè.!

    anche se successivamente a livello pratico, io ho adottato un altro sistema che è il seguente:

    codice:
    USE [DataEntry]
    GO
    /****** Oggetto:  StoredProcedure [dbo].[Totalone]    Data script: 05/10/2008 14:25:17 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER PROCEDURE [dbo].[Totalone]( 	
    	@Campagna nvarchar(100), 
    	@DataI DateTime,
        @DataF DateTime)
    AS
    BEGIN
    	SET NOCOUNT ON;
    Declare @i Integer
    Declare @totaliparziali TABLE(id int identity Primary key, totvendite int,vendite nvarchar(100),campagna nvarchar(100),operatore nvarchar(100))
    
    insert into @totaliparziali 
    select count(Operazioni.vendita)as totals,Operazioni.vendita,Operazioni.campagna,Operazioni.oper from dbo.Operazioni where Operazioni.campagna=@Campagna AND Operazioni.Data BETWEEN  @DataI AND @DataF group by vendita,campagna,oper
    
    --select count(*) from @totaliparziali;
    
    SET @i=0
    
    while @i<136
    
    begin
    
    select id,totvendite,vendite,campagna,operatore from @totaliparziali where id=@i
    
    if (vendite='Senza Limiti + ADSL')
    
    update @totaliparziali set totvendite=5 where id=@i;
    
    SET @i=@i+1
    end
    
    END
    non funziona perchè mi dice che vendite non esiste nel contesto corrente, oltrettutto anche a fare una aprova banale non funziona neppure l'update.Però penso che la logica anche in questo casi ci sta tutto.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    162
    Non c'è nessuno che può darmi una mano a capire meglio come potrebbe funzionare questo processo?

    Grazie ancora

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.