Vb.net e sql per tabelle dare ed avere

lunedì 24 giugno 2013 - 15.22
Tag Elenco Tags  VB.NET  |  .NET 3.5  |  Windows 7  |  Visual Studio Express  |  SQL Server 2008 R2

pieroalampi Profilo | Expert

salve ho un problema, nella creazione di un programma che gestisce dare ed avere non riesco ad uscirne fuori per il seguente motivo,
ammesso che ho la seguente Tabella:
dare avere
74,0000 0,0000 commessa 1
0,0000 74,0000 anticipo 12/12
0,0000 10,0000 anticipo 13/12
dove in dare ho quello che il cliente mi deve ed in avere i possibili anticipi, come faccio a far detrarre dal dare quindi da 74€ le 74 € in avere ed eliminare la riga che è oramai azzerata???? avevo pensato di fare una somma delle due e detrarre perché in ogni caso la somma o sottrazione che sia la devo considerare ugualmente perché per esempio se la tabella fosse questa:
79,0000 0,0000 commessa 1
0,0000 74,0000 anticipo 12/12
0,0000 10,0000 anticipo 13/12
dovrei togliere dalla seconda riga di avere altri 5€ per trovarmi questa tabella finale

0,0000 05,0000 anticipo 13/12

grazie mille
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LA PRIMA FRASE DI UN PROGRAMMATORE HELLO WORD ...... ANCHE L'ULTIMA

Runtime Profilo | Newbie

Ciao PierFrancesco.
A parer mio è sbagliata la struttura della tabella.
Per una corretta normalizzazione del database, avrei creato 2 tabelle distinte.
Una per i "DARE" ed una per gli "AVERE".
L'output che ti serve, a questo punto, sarà la combinazione delle due estraendo i dati dal Db ed elaborandoli a tuo piacimento.

Ciao

pieroalampi Profilo | Expert

perdonami ma che cambia fra due tabelle e due campi? la differenza sta ne ciclare un unica tabelle!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LA PRIMA FRASE DI UN PROGRAMMATORE HELLO WORD ...... ANCHE L'ULTIMA

Runtime Profilo | Newbie

Ciao
E' una questione di normalizzazione del Database.
Apparentemente non cambia nulla ma concettualmente cambia il mondo.
E, la necessità di una corretta normalizzazione, a parer mio, nasce proprio dalla tua richiesta.....
>come faccio a far detrarre dal dare quindi da 74€ le 74 € in avere ed eliminare la riga che è oramai azzerata????

Nel mio caso, non avresti nulla da eliminare.
Un "DARE" è un record della tabella "DARE" ed un "AVERE" è un record della tabella "AVERE". Non devi cancellare nulla.Il tuo output a video sarà la differenza tra i due.
Non ha nessun senso creare dei record per poi eliminarli(se ho capito bene il tuo intento).
Un record, se inserito in una tabella, è li perché ha ragione di esserci.

Nel tuo caso, invece, inserisci un record con un dato "AVERE" e magari un dato "DARE" che in quel caso non esiste(quindi perchè inserirlo comunque se vale 0) perchè la tua intenzione è registrare solo l' "AVERE".

Spero di essermi spiegato in maniera abbastanza chiara.
Diversamente ..... chiedi pure.

Ciao

pieroalampi Profilo | Expert

ok perfetto sono d'accordo che il db vada normalizzato e deve essere fatto bene a penna e poi sul pc ma è anche vero che deve rispecchiare le esigenze, a me non interessa mantenere uno storico anche perché il cliente dopo un certo numero di operazioni vuol far sparire il tutto, soprattutto perché non è un programma fatto ai fini fiscali ma è un promemoria che deve rimanere in vita per il tempo i vita della commessa poi nessuno storico deve esser presente, ovviamente in caso di fatture e altro non sarebbe stato possibile cancellare nulla per evitare campi orfani e quant'altro ma nel mio caso non è cosi! aggiungo che l'eliminazione mi serve anche per creare spazio dato che le operazioni sono fatte in numero elevatissimo.
Quello che sto provando adesso: adesso sto ciclando la tabella eliminando il debito con gli anticipi mettendo come condizione lo 0, di fatto quello che mi serviva non era una soluzione del db ma come affrontare l'operazione da sql.
grazie mille ancora
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LA PRIMA FRASE DI UN PROGRAMMATORE HELLO WORD ...... ANCHE L'ULTIMA

Runtime Profilo | Newbie

Ciao
Non hai capito....la mia non voleva essere una lezione di teoria.
Era semplicemente un consiglio su come risolvere la cosa senza troppe complicazioni e, a parer mio, nella maniera più corretta .
Ad ogni modo .... venendo al problema.....allo stato attuale delle cose non vedo altra soluzione che, ad ogni record inserito, fare la somma di tutti i "DARE" e di tutti gli "AVERE" della relativa commessa cancellare tutti i record interessati ed inserirne uno nuovo con i dati aggiornati.
Perdonami ma non vedo altra soluzione.

Se ti serve altro .... non hai che da chiedere.
Ciao

pieroalampi Profilo | Expert

ok grazie mille vedrò di risolvere la cosa, grazie ancora per i consigli!!!valuterò
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LA PRIMA FRASE DI UN PROGRAMMATORE HELLO WORD ...... ANCHE L'ULTIMA
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5