Principale utente con più risposte
Calcolo Query

Domanda
-
Ciao a tutti,vorrei eseguire una query con questo tipo di calcolo es:
-1000 + 100 = -900
in sql ho provato a fare così ma non so se giusto:
SELECT CONVERT(varchar(02), MONTH(RATE_PIANO.data)) + ' ' + CONVERT(varchar(04), YEAR(RATE_PIANO.data)) AS MESECOMPLETO, sum(-RATE_PIANO.capitale_residuo + RATE_PIANO.importo_rata) AS TOTALE FROM FINANZIAMENTI INNER JOIN RATE_PIANO ON FINANZIAMENTI.NUM_FIN = RATE_PIANO.num_fin WHERE (FINANZIAMENTI.STATUS NOT IN ('AN', 'P')) AND (RATE_PIANO.data BETWEEN '2013-01-01' AND '2014-12-31') GROUP BY MONTH(RATE_PIANO.data), YEAR(RATE_PIANO.data)
Grazie a tutti.
Luigi.
Risposte
-
-
Ciao ragazzi ho risolto il problema, data la giusta osservazione di Paolo se i numeri capitale_residuo e importo rata erano tutti positivi era la risposta alla soluzione al mio problema.
La colonna capitale_residuo infatti sono le uscite, essendo un numero positivo non poteva mai rappresentarmi nel grafico una uscita con il segno -, modificando con una query update il campo capitale ove contiene l'intero importo finanziato con il segno - ho risolto.
Quindi la query come accennato da Paolo doveva funzionare.
SELECT CONVERT(varchar(02), MONTH(RATE_PIANO.data)) + ' ' + CONVERT(varchar(04), YEAR(RATE_PIANO.data)) AS MESECOMPLETO, SUM(RATE_PIANO.capitale_residuo + RATE_PIANO.importo_rata) AS TOTALE FROM RATE_PIANO INNER JOIN FINANZIAMENTI ON RATE_PIANO.num_fin = FINANZIAMENTI.NUM_FIN WHERE (RATE_PIANO.data BETWEEN @data1 AND @data2) AND (FINANZIAMENTI.STATUS IN ('A', 'X')) GROUP BY MONTH (RATE_PIANO.data), YEAR(RATE_PIANO.data)
ovviamente non metto nessun segno - davanti a "RATE_PIANO.capitale_residuo" in quanto già negativo nel db.
ottenendo (- Valuta1 + Valuta2 = -Risultato) ovviamente graficamente non sempre è negativo il mese meno male! :P.
Grazie a tutti alla prossima.
Luigi.
Tutte le risposte
-
-
Ciao Paolo, ok per il totale, ti spiego stò creando un grafico per un portafoglio di prestiti a rate costanti quindi entrate e uscite, implementando la query nel grafico, è molto strano che i valori siano sempre in più.
Ad esempio marzo e aprile quando è partito il primo finanziamento ed il secondo, le colonnine dovrebbero essere con un valore sotto lo zero in quanto hanno sborsato il totale del finanziamento.
Nella mia tabella delle rate_finanziamento è così composta:
USE [TEST] GO /****** Object: Table [dbo].[RATE_PIANO] Script Date: 12/12/2014 15:07:11 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[RATE_PIANO]( [pk_id] [int] IDENTITY(1,1) NOT NULL, [num_fin] [int] NOT NULL, [num_rata] [int] NOT NULL, [data] [date] NOT NULL, [importo_rata] [money] NOT NULL, [capitale_residuo] [money] NOT NULL, [statorata] [bit] NULL CONSTRAINT [DF_RATE_PIANO_statorata] DEFAULT ((0)), [datavaluta] [date] NULL, CONSTRAINT [PK_RATE_PIANO] PRIMARY KEY CLUSTERED ( [pk_id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO
la rata n. 0 è memorizzato il totale finanziato e poi 10 rate a scalare.
Spero di essere stato abbastanza chiaro.
grazie 1000.
Luigi.
-
Ciao Luigi,
in occasione del thread sul grafico sull'altro forum ho nel mio pc parte del tuo database.
Adesso ho aggiunto 2 record per fare una prova popolando con i seguenti valori:
capitale_residuo importo_rata
125,0000 25,0000
100,0000 25,0000
Con la tua query ottengo come TOTALE giustamente -175,0000
A questo punto non saprei come aiutarti, la query funziona correttamente.
Ciao
Paolo Pranzo
-
Ho dimenticato un pezzo tutti i miei valori sono con il meno nel grafico. nel senso che se imposto così
sum(-RATE_PIANO.capitale_residuo + RATE_PIANO.importo_rata) AS TOTALE tutti con il "-" se imposto così
sum(+RATE_PIANO.capitale_residuo - RATE_PIANO.importo_rata) AS TOTALE tutti con il "+".
Luigi.
-
-
Altrimenti proverei così date queste 2 query con totale1 e totale2 dove totale1 stà per l'entrate quindi le rate e totale2 stà per le uscite quindi come posso impostare il risultato di queste 2 query ottenendo questa operazione:
-TOTALE2 + TOTALE1 AS TOTALEDEFINITIVO?
SELECT CONVERT(varchar(02), MONTH(RATE_PIANO.data)) + ' ' + CONVERT(varchar(04), YEAR(RATE_PIANO.data)) AS MESECOMPLETO, SUM(RATE_PIANO.importo_rata) AS TOTALE1 FROM RATE_PIANO INNER JOIN FINANZIAMENTI ON RATE_PIANO.num_fin = FINANZIAMENTI.NUM_FIN WHERE (RATE_PIANO.data BETWEEN '2013-01-01' AND '2014-12-31') AND (FINANZIAMENTI.STATUS NOT IN ('AN', 'P')) GROUP BY MONTH (RATE_PIANO.data), YEAR(RATE_PIANO.data) SELECT CONVERT(varchar(02), MONTH(RATE_PIANO.data)) + ' ' + CONVERT(varchar(04), YEAR(RATE_PIANO.data)) AS MESECOMPLETO, SUM(RATE_PIANO.capitale_residuo) AS TOTALE2 FROM RATE_PIANO INNER JOIN FINANZIAMENTI ON RATE_PIANO.num_fin = FINANZIAMENTI.NUM_FIN WHERE (RATE_PIANO.data BETWEEN '2013-01-01' AND '2014-12-31') AND (FINANZIAMENTI.STATUS NOT IN ('AN', 'P')) AND (RATE_PIANO.num_rata = '0') GROUP BY MONTH (RATE_PIANO.data), YEAR(RATE_PIANO.data)
-
-
Ciao ragazzi ho risolto il problema, data la giusta osservazione di Paolo se i numeri capitale_residuo e importo rata erano tutti positivi era la risposta alla soluzione al mio problema.
La colonna capitale_residuo infatti sono le uscite, essendo un numero positivo non poteva mai rappresentarmi nel grafico una uscita con il segno -, modificando con una query update il campo capitale ove contiene l'intero importo finanziato con il segno - ho risolto.
Quindi la query come accennato da Paolo doveva funzionare.
SELECT CONVERT(varchar(02), MONTH(RATE_PIANO.data)) + ' ' + CONVERT(varchar(04), YEAR(RATE_PIANO.data)) AS MESECOMPLETO, SUM(RATE_PIANO.capitale_residuo + RATE_PIANO.importo_rata) AS TOTALE FROM RATE_PIANO INNER JOIN FINANZIAMENTI ON RATE_PIANO.num_fin = FINANZIAMENTI.NUM_FIN WHERE (RATE_PIANO.data BETWEEN @data1 AND @data2) AND (FINANZIAMENTI.STATUS IN ('A', 'X')) GROUP BY MONTH (RATE_PIANO.data), YEAR(RATE_PIANO.data)
ovviamente non metto nessun segno - davanti a "RATE_PIANO.capitale_residuo" in quanto già negativo nel db.
ottenendo (- Valuta1 + Valuta2 = -Risultato) ovviamente graficamente non sempre è negativo il mese meno male! :P.
Grazie a tutti alla prossima.
Luigi.