2017-05-19 4 views
0

Ich habe eine Tabelle der Verkaufsinformationen, jedes Produkt hat zwölf Datensätze für jeden Monat des Jahres. Der einzige eindeutige Wert ist der Verkaufsbetrag.Doppelte Datensätze als eine in Rails anzeigen

#<AccountMarginTarget id: 1, product_id: "123", sales: 2000> 
    #<AccountMarginTarget id: 2, product_id: "123", sales: 50> 
    #<AccountMarginTarget id: 2, product_id: "123", sales: 37> 
    #<AccountMarginTarget id: 2, product_id: "22", sales: 47> 
    #<AccountMarginTarget id: 2, product_id: "22", sales: 74> 

Ich weiß, ich consolodated Daten mit .group abrufen können, zB:

YearSales.group(:product_id).sum(:sale_total) 

Aber wenn es darum geht, alle im Hinblick auf die Anzeige, dann ist es schwierig, eine Liste von 12 Datensätzen zu haben. Ich habe mir .join .group .uniq usw. angeschaut - aber ich bin immer noch verwirrt, was die beste Methode ist, nur Duplikate einmal aufzulisten?

Entschuldigung für jede Naivität!

Antwort

0

Also, ich habe das herausgefunden und fühle mich ein wenig dumm, wie einfach es zu erreichen war. Da ich ein Jr bin, würde ich mich über alle Verbesserungen freuen :) Ich werde aktualisieren, wie ich meinen Code überprüfe.

Wie ich viele Duplikate in meinem Tisch haben, zuerst muss ich sie

unique_ids = @sale_records.map(&:product_id).uniq.map 

dann heraus ich den unique_id die durchlaufen und das erste Ergebnis aus der Datenbank abzurufen, die es passt:

@unique_product_sale_records = unique_ids.collect.each do | unique_id | 
    SalesRecord.where(product_id: unique_id).first 
end 
Verwandte Themen