我已经在我的分贝以下表格:药剂/凤凰查询含量
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