我已經在我的分貝以下表格:藥劑/鳳凰查詢含量
schema "foods" do
field :name, :string
has_many :order_items, MyApp.OrderItem
end
schema "order_items" do
field :quantity, :integer, default: 1
field :price, :integer
belongs_to :food, MyApp.Food
訂單項目保持food_id,以及數量。現在我試圖創建一個查詢,顯示每個食品的訂購量。這是我到目前爲止有:
fooditems = Repo.all(from p in OrderItem, join: f in Food, on: p.food_id == f.id,
group_by: f.name, select: {f.name, count(p.id)}, order_by: count(p.id))
基本上,我有兩個問題:1)如何讓數量字段(從訂單項目表),也包括在查詢算?例如,如果訂購商品的數量是2,則count()只會計數爲1,那麼如何使count()不僅通過id來計數,還包括數量(來自訂單商品表,數量字段)?
此外,我不知道如何從HTML調用查詢。我試過
<%= for item <- @fooditems do %>
<tr>
<td><%= item.name %></td>
</tr>
<% end %>
但它返回參數錯誤,所以我相信,我只是用item.name調用它錯誤的方式。一般來說,我想要一個表格來列出食物名稱和相應的數量(來自order_item表,包括數量字段)。
感謝
謝謝Dogbert!所以,我應該使用sum()來計算數量,而不是count。至於元組,我明白我做錯了什麼,我會按照你的建議和使用地圖來代替! – Ilya
是的,'count'會返回訂單的數量,而'sum(數量)'會將這些訂單的所有數量相加。 – Dogbert