246 messaggi dal 03 dicembre 2001
www.fuossbook.it
Ciao a tutti;
ho una tabella con degli elementi che si chiamano dossier che hanno una data di creazione.
Dovrei creare una funzione dove gli passo l'id del cliente che mi ritorni una lista con tutti i dossier creati in due differenti anni
quindi diciamo che passo due int anni alla funzione
quello che mi restituisce stavo pensando di metterlo in un oggetto cosi composto


    public class StatDifferenceDateDto 
    {
        private int MonthPrev { get; set; }
        private int YearPrev { get; set; }
        private int AmountPrev { get; set; }
        private int MonthPost { get; set; }
        private int YearPost { get; set; }
        private int AmountPost { get; set; }

    }




dal db ho estratto queste due query



SELECT 
 count (month( [CreationDate] ) ) as QuantitaCreati,month( [CreationDate] ) as numeroMese,YEAR( [CreationDate] )
    FROM [dbo].[Dossier] AS [Extent1]
  where
  YEAR(CreationDate)= 2017 
  group by month( [CreationDate]),YEAR( [CreationDate])

  SELECT 
 count (month( [CreationDate] ) ) as QuantitaCreati,month( [CreationDate] ) as numeroMese,YEAR( [CreationDate] )
    FROM [dbo].[Dossier] AS [Extent1]
  where
  YEAR(CreationDate)= 2016 
  group by month( [CreationDate]),YEAR( [CreationDate] )




quindi poi vorrei aggiungere i risultati alla lista in un ciclo for pensavo
andando a mettere al mese 1 2017 (gennaio) la quantita di dossier creati (QuantitaCreati) e poi per lo stesso mese 1 2016 la quantita crati

purtroppo non essendo esperto di linq sto avendo difficoltà a creare le due select in linq
uso un context cosi


 using (var context = new ApplicationDbContext())
                {
  var dossiers1 = context.Dossiers
                        .Where(d => ((crpcen != 0 && d.studio== crpcen)) &&
                                    (d.CreationDate.Year == fromPrevYear))
                        .GroupBy(d => d.CreationDate.Month)



}



ma come detto sto avendo difficoltà a crearla, quindi vi vorrei chiedere se potete suggerirmi come creare la group by e come prendere solo i tre campi come ho fatto io con il count
e poi se secondo voi é corretta la soluzione di fare un for tipo da 1 a 12 e quindi come prendere da
dossiers1 il valore QuantitaCreati
ho visto che si puo anche convertire la select in .Array non so se è una buona idea per cicliare tipo

una cosa del genere
  for (int m = 1; m <= 12; m++ )
                    {
 a = dossiers1(m).QuantitaCreati
 b = dossiers2(m).QuantitaCreati


}



spero di essere stato abbastanza chiaro con quello che vorrei fare.
Potete darmi dei suggerimenti?
Grazie

***************************
webmaster di:
hydrasail.blogspot.it
canzonivasco.ciucciatiilcalzino.it
***************************

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.