2013-07-26 11 views
8

L'ultimo giorno di chiusura delle scorte dovrebbe essere il valore iniziale del giorno successivo.I dati di magazzino vengono trasferiti al giorno successivo in LINQ

Ho provato questo

var k = INV_STOCKs.Select(x => 
    new DemoItemV1 
    { 
     AreaId = x.STOCK_DATE, 
     CategoryTitle = x.STOCK_QTY 
    }) 
    .AsEnumerable() 
    .Select((x, i) => { x.ID = i + 1; return x }) 
    .ToList(); 

Struttura della tabella

ID, STOCK_DATE, STOCK_QTY

Si prega di uno può aiutare a risolvere questo

ho bisogno di stampare come questo

Date   Opening Stock  Closing Stock 
01/01/13     0     5 
01/02/13     5     10 
01/03/13     10     15 
01/04/13     15     22 
01/05/13     22     30 

Grazie in anticipo.

+0

Cosa c'era di sbagliato in quello che si è tentato? – Arran

+1

Questa query non sembra associata alla domanda. Per favore spiega il tuo problema. Per me è orribilmente poco chiaro. – wudzik

+0

@wudzik Devo stampare Data, aprire il magazzino, chiudere il magazzino in esso –

risposta

3

"Ho bisogno di Stampa data, apertura stock, scorte finali in essa"

INV_STOCKs.GroupBy(x=>x.STOCK_DATE).ForEach(group=> 
{ 
    var g = group.OrderBy(x.ID); 
    Print(g.First().STOCK_DATE); //Date 
    Print(g.First().STOCK_QTY); //Opening stock 
    Print(g.Last().STOCK_QTY); //Closing stock 
}); 

Print è un metodo che si stampa questo valore, naturalmente è possibile utilizzare un metodo con 3 paramameters o qualsiasi altra cosa:)

EDIT: di conservarlo in lista:

class StockStore 
{ 
    public int OpeningStock; 
    public int ClosingStock; 
    public DateTime Date; 
} 

var list = new List<StockStore>(); 

INV_STOCKs.GroupBy(x=>x.STOCK_DATE).ForEach(group=> 
{ 
    var g = group.OrderBy(x.ID); 
    list.Add(new StockStore 
    { 
     OpeningStock = g.First().STOCK_QTY, 
     ClosingStock = g.Last().STOCK_QTY, 
     Date = g.First().STOCK_DATE 
    }); 
}); 
+0

non ho bisogno di stamparlo. Ho bisogno di una lista che tenga tutti i dati nel formato richiesto. –

+0

modificato, ora hai il tuo magazzino di apertura/chiusura in archivio nella lista – wudzik

+0

grazie a @wudzik, è davvero funzionante. Sei molto utile, Dio ti benedica. –

0

Qualcosa in questo senso.

var lastStockItem = INV_Stocks 
     .OrderByDescending(x=>x.StOCK_Date) 
     .FirstorDefault(); 

Questo dovrebbe farti l'ultimo articolo di magazzino del giorno.

Problemi correlati