Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di diegoctn
    Registrato dal
    May 2001
    Messaggi
    2,118

    Problema con un if in select

    Ragazzi ho un problema: ho una tabella con i campi ore, reparto e prestato. Reparto è il reparto di appartenenza del dipendente, ore sono le ore di straordinario, prestato è il reparto a cui viene prestato. Esempio:

    magazzino A (reparto), 3 (ore), magazzino B (prestato)
    magazzino B (reparto), 2 (ore), ------------ (prestato)

    ------------ vuol dire che non è stato prestato, quindi che ha compiuto lo straordinario nel reparto di appartenenza.

    Problema: se io devo sommare le ore del reparto b dovrebbero essere 5 (3+2), perchè sono state effettuate tutte nel magazzino b ma come fare? Se dovessi lavorare in access farei (IIf(prestato="----------"; reparto;prestato)) quindi if prestato=---------- then prestatoX=reparto else prestatoX=prestato

    Spero di essere stato abbastanza esaudiente. Come posso fare in asp? Grazie mille ragazzi.

  2. #2
    Suppondo tu voglia fare tutto con un database Mysql:

    innanzitutto apri il recordset e scorri, riga per riga il database.

    in secondo luogo ti consiglio di creare un 4 campo, chiamato somma_ore, dove tenere il totale di ore svolte nel magazzino con quel nome.

    Se la tua struttura è questa:

    magazzino A (reparto), 3 (ore), magazzino B (prestato),0 (somma_ore)
    magazzino B (reparto), 2 (ore), ------------ (prestato),0 (somma_ore)


    il costrutto if che ti serve è semplice.

    se il campo "prestato" è ------------ allora somma_ore è uguale a somma_ore+ore

    altrimenti devi updatare il somma_ore del campo dove il nome del reparto è uguale al (prestato)


    ricordati di effettuare l'update sempre con il +...cosicchè i dati no nsi sovrascrivano nel caso di più magazzini. E' importante che tu abbia la somma di tutti i prestati + quello "in loco".

    Se no nsono stato chiaro se mi scrivi che tecnologia usi e mi dai qualche nome dei tuoi recordset provo a fart un esempio pratico.

  3. #3
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    codice:
    select sum(ore) from tabella where (reparto = 'B' and prestato <> 'B') or (prestato = 'B' and reparto <> 'B')
    Non sono sicuro...

    Roby

  4. #4
    Utente di HTML.it L'avatar di diegoctn
    Registrato dal
    May 2001
    Messaggi
    2,118
    Access. Nomi campo prestato, ore, reparto

  5. #5
    Utente di HTML.it L'avatar di diegoctn
    Registrato dal
    May 2001
    Messaggi
    2,118
    No Roby, così tu mi poni una qustione di where. Io ho bisogno di raggruppare per prestato ( e qui se prestato e = -------- allora prestato = reparto) e sommare le ore.

  6. #6
    Utente di HTML.it L'avatar di diegoctn
    Registrato dal
    May 2001
    Messaggi
    2,118
    Per i posteri:

    codice:
    Squ1="SELECT Sum(inf.ore) AS SommaDiore, IIf(prestato='---------------------',reparto,prestato) AS Espr1 FROM inf WHERE ann=No GROUP BY IIf(prestato='---------------------',reparto,prestato);"

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 © 2026 vBulletin Solutions, Inc. All rights reserved.