我有一个MySQL查询,我需要更改以提供不同格式的结果。
到目前为止,这是我的查询:
@bill_area_char = BillsPayment.joins(:bill).where(payed: false,date: from_date..to_date, active: true).group("bills.car_name").sum(:price)
结果:
{"A3"=>20000.0, "A4"=>100.0, "A5"=>700.0, "Alfa"=>8000.0, "AMIO"=>40.0, "Aveo"=>800.0, "Bmw"=>20000.0, "Continental GT"=>33000.0, "i325"=>200.0, "Lobo"=>800.0, "Wrangler"=>60000.0}
但是,我需要:
[{"January" => {"A3": "200"},{"A4":"300"}....etc},...next 12 months]
是否可以使用Ruby on Rails在单个MySQL查询中返回所有这些月份?
答案 0 :(得分:0)
你可以在获得结果后继续使用DB的结果(可能更慢,但我想它会足够快):
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:custom="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:id="@+id/fragment_place"
android:layout_height="match_parent">
<android.support.v4.view.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true">
<com.hookedonplay.decoviewlib.DecoView
android:layout_width="250dp"
android:layout_height="200dp"
android:id="@+id/dynamicArcView"
android:layout_marginLeft="40dp"
android:layout_marginRight="8dp"
android:layout_marginTop="5dp">
</com.hookedonplay.decoviewlib.DecoView>
<EditText
android:id="@+id/actual"
android:inputType="number"
android:layout_width="150dp"
android:layout_height="46dp"
android:background="@drawable/border"
android:gravity="center"
android:hint="Enter Actual"
android:text=""
android:textColor="#000000"
android:textColorHint="#000000"
android:textSize="15sp"
android:layout_marginStart="26dp"
android:layout_alignBottom="@+id/textPercentage"
android:layout_alignStart="@+id/dynamicArcView" />
<Button
android:id="@+id/actual_btn"
android:layout_width="68dp"
android:layout_height="50dp"
android:background="@drawable/actualbutton"
android:shadowColor="#A8A8A8"
android:text="+"
android:textColor="#FFFFFF"
android:layout_above="@+id/textViewProgress"
android:layout_toEndOf="@+id/actual"
android:layout_marginLeft="12dp"/>
<TextView
android:id="@+id/textViewProgress"
android:layout_width="200dp"
android:layout_height="100dp"
android:layout_marginTop="15dp"
android:layout_below="@+id/actual"
android:layout_alignEnd="@+id/actual_btn"
android:layout_marginEnd="14dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text=""
android:textSize="40sp"
android:id="@+id/textPercentage"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="90dp"
/>
<TextView
android:id="@+id/textViewLineType"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="86dp"
android:text=""
android:textSize="40dp"
android:textAlignment="center"
android:textStyle="bold"
android:textColor="#f15623"
android:layout_alignTop="@+id/dynamicArcView"
android:layout_toEndOf="@+id/dynamicArcView" />
<Button
android:id="@+id/buttonViewDetails"
android:layout_width="60dp"
android:layout_height="60dp"
android:background="@mipmap/info"
android:layout_marginLeft="250dp"
android:onClick="verifyButton"
android:layout_alignParentBottom="true"
android:layout_marginBottom="14dp" />
</RelativeLayout>
</RelativeLayout>