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

    [SQL-Server] aiuto x fare 2 conti, alias

    codice:
    SELECT 
    	convert(varchar, Data,111),
    	convert(varchar, Data,103) AS Data2,
    	IdUtente, 
    	SUM(DATEDIFF(hh, OraInizio, OraFine)) as OreTotali,
    	-- (ore di ferie o permesso da sottrarre alle ore mancanti)
    	(SELECT DATEDIFF(hh, Agenda.DalleOre, Agenda.AlleOre) FROM Agenda WHERE Agenda.Data = A.Data AND oggetto = 'permesso') as FP, 
    	(OreTotali - FP) as OreEffetiveMancanti,
    	U.Nome,
    	U.Cognome
    ....
    il problema mi è causato da (OreTotali - FP) perchè il caro SQL server non li riconosce come campi, come posso dunque effettuare questo calcolo?
    "0 è tutto finito. 1 è solo l'inizio"
    HO IL CERTIFICATO DI RESISTENZA.

  2. #2
    Utente di HTML.it L'avatar di diegoctn
    Registrato dal
    May 2001
    Messaggi
    2,118

    Re: [SQL-Server] aiuto x fare 2 conti, alias

    codice:
    SELECT 
    	convert(varchar, Data,111),
    	convert(varchar, Data,103) AS Data2,
    	IdUtente, 
    	SUM(DATEDIFF(hh, OraInizio, OraFine)) as OreTotali,
    	-- (ore di ferie o permesso da sottrarre alle ore mancanti)
    	(SELECT DATEDIFF(hh, Agenda.DalleOre, Agenda.AlleOre) FROM Agenda WHERE Agenda.Data = A.Data AND oggetto = 'permesso') as FP, 
    	((SUM(DATEDIFF(hh, OraInizio, OraFine))) - ((SELECT DATEDIFF(hh, Agenda.DalleOre, Agenda.AlleOre) FROM Agenda WHERE Agenda.Data = A.Data AND oggetto = 'permesso'))) as OreEffetiveMancanti,
    	U.Nome,
    	U.Cognome
    ....
    Prova cosi.

  3. #3
    lo so che così funziona ma è assurdo ripetere 2 select, per cui ho fatto una select esterna del tipo:
    codice:
    SELECT *, (OreTotali - OrePermesso) as OreEffettiveMancanti FROM 
    (
    	SELECT 
    		convert(varchar, Data,111) as Data1,
    		convert(varchar, Data,103) AS Data2,
    		IdUtente, 
    		SUM(DATEDIFF(hh, OraInizio, OraFine)) as OreTotali,
    		-- (ore di permesso da sottrarre alle ore mancanti)
    		(SELECT DATEDIFF(hh, Agenda.DalleOre, Agenda.AlleOre) FROM Agenda WHERE Agenda.Data = A.Data AND oggetto = 'permesso') as OrePermesso, 
    		U.Nome,
    		U.Cognome
    ..........
    ed ho dedotto che all'interno di una query (in SQLserver almeno) non è possibile in nessun modo e in nessun punto fare riferimento agli ALIAS....
    "0 è tutto finito. 1 è solo l'inizio"
    HO IL CERTIFICATO DI RESISTENZA.

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.