84 messaggi dal 15 settembre 2005
Ciao a tutti, non riesco a capire come posso effetuare una select su una tabella cosi composta.

id, codice, prezzo, data_inizio, data inserimento
1, 100, 1000, 10/12/2008, 04/09/2008
2, 100, 1200, 10/12/2008, 04/09/2008
3, 150, 1500, 10/11/2008, 04/09/2008
3, 100, 1500, 01/11/2008, 04/09/2008

da questa tabella io dovrei riuscire ad avere attraverso una select il record con id = 2 e id = 3, logicamente non conosco l'id.

Per esplicare meglio il mio problema io devo avere nel rislutato della query il una riga per ogni codice per ogni data inizio, in pratica il risultato della query dovrebbe restituirmi:

id, codice, prezzo, data_inizio, data inserimento
2, 100, 1200, 10/12/2008, 04/09/2008
3, 150, 1500, 10/11/2008, 04/09/2008
3, 100, 1500, 01/11/2008, 04/09/2008

non riesco a trovare un modo per ottenere questo risultato.
una cosa del genere:
SELECT * FROM tua tabella WHERE(ID = ?) and (data_inizio=?) .
Occhio alle date , gestiscile correttamente seno possono dare noie :)

Corso SEO DeepSEO
Libro SEO, SEM e Web Marketing
Siti Web Parma
84 messaggi dal 15 settembre 2005
Ciao non conosco l'id, dall'esempio qui sotto io dovrei avere come output i record con data inizio diversa, se un codice ha due record con data inizio uguale, solo l'ultimo inserito

id codice prezzo data_inizio data inserimento
1 100 1000 01/11/2008 04/09/2008
2 100 1200 10/12/2008 04/09/2008
3 150 1500 10/11/2008 04/09/2008
4 100 1500 10/12/2008 04/09/2008

In pratica l'output dovrebbe restituirmi i record con id = 1,3,4.

spero di essermi spiegato meglio
Che dati conosci? il codice lo conosci? o devi semplicemente tirare su i dati ed effettuare dei controlli sulla data come hai illustrato?

Corso SEO DeepSEO
Libro SEO, SEM e Web Marketing
Siti Web Parma
Provo a risponderti con pseudocodice per vedere se ho capito il problema:

Puoi procedere cosi(anche se non è efficente)
Crei una data-table e la popoli con tutti i dati
atw è una classe esterna che fa da wrapper(MVC).

sql="Select * from tua_tabella".
Popli la data table
DataTable dt1= atw.GeAllData();

foreach (DataRow dr in dt1.Rows)
 {
               
 DataTable dt2=new DataTable();
               
 int code = Convert.ToInt32(dr["CODE"].ToString());

 sql interesato="select * where (code=?) and( controlli su date)
 
 dt2 = atw.GetDataByIdandRegoleSullaData(code);

 foreach (DataRow  rw in dt2.Rows)
 {
   Fai visualizzare i dati o effettui ulteriori controlli con if
 }
               
            }

Ti ripeto se hai molti record è un'operazione non efficente, dimmi se ho capito il problema.
Ciao Marco
Modificato da maltra il 05 settembre 2008 12.28 -
Modificato da maltra il 05 settembre 2008 12.29 -

Corso SEO DeepSEO
Libro SEO, SEM e Web Marketing
Siti Web Parma
84 messaggi dal 15 settembre 2005
Io devo insserire in una tabella di appoggio i 3 record senza inserire il record che ha stesso codice, stessa data fine ma + stato inserito per primo.
Allora il ragionamento che ti ho detto nel post precedente potrebbe andare bene:
Ti ripeto non è performante ma può andare:
Allora carichi tutti i dati in una datatable
fai scorrerela data table e fai una select sul codice e controlli sulle date,

poi:
dal quella select fai un insert con i dati necessare nella tabella di appoggio.


guarda il codice postato spero ti possa aiutare
Ciao Marco
Modificato da maltra il 05 settembre 2008 14.07 -

Corso SEO DeepSEO
Libro SEO, SEM e Web Marketing
Siti Web Parma

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.