Mysql Query使用Rails返回数组?

时间:2017-11-07 15:52:46

标签: mysql sql ruby-on-rails ruby ruby-on-rails-5

我有一个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查询中返回所有这些月份?

1 个答案:

答案 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>