android: Как преобразовать значения типа varchar или integer в вещественный (float) тип в sqlite - PullRequest
0 голосов
/ 20 сентября 2011

У меня есть две колонки. когда я делю значения обеих таблиц, я получаю столбец целочисленного значения. Но я хочу, чтобы точные значения с плавающей точкой в ​​столбце после деления. Еще один запрос, который у меня есть, заключается в том, что когда я выполняю этот запрос в оболочке, он работает нормально, но он выдает ошибку, когда я использую его в коде. Пожалуйста, предложите что-нибудь.

public ArrayList<String> selectQueryForcasting(Context context,String segment,String customer, String location)
        {   
            ArrayList<String> z = new ArrayList<String>();
            Log.d("Inside Select ","Select starts for table name: Sales_Forcast");
            myDataBase = context.openOrCreateDatabase("Db",Context.MODE_WORLD_READABLE, null);  
                            System.out.println("inside");
                                Cursor c= myDataBase.rawQuery("select ((Forecasted_Qty - Actual_Sales_Qty) * 100)/forecasted_qty from sales_forecast,customer,market_segment,org_location where market_segment.Market_Seg_Code="+segment+" and sales_forecast.Mrkt_Segment_Key=market_segment.Market_Seg_Key group by sales_forecast.time_key", null);
                System.out.println("Succcess"+c);

                if (c.moveToFirst()) {
                    do {

                        z.add(c.getString(0));
                        //Log.d("EXAMPLE","string ");

                    } while (c.moveToNext());
                }
                if (c != null && !c.isClosed()) {
                    c.close();
                }


            return z;
        } 

Ответы [ 2 ]

2 голосов
/ 20 сентября 2011

Это должно дать вам то, что вы хотите:

select (( cast (Forecasted_Qty as REAL) - cast (Actual_Sales_Qty as REAL) ) * 100) /forecasted_qty

или еще лучше:

select (( cast (Forecasted_Qty - Actual_Sales_Qty as REAL) ) * 100) / forecasted_qty

0 голосов
/ 21 сентября 2011

Я получил ответ.

c= myDataBase.rawQuery("select ((cast(Forecasted_Qty - Actual_Sales_Qty as real)) * 100)/forecasted_qty,Mrkt_Segment_Key from sales_forecast,customer,market_segment,org_location  where sales_forecast.Mrkt_Segment_Key=market_segment.market_seg_key and market_segment.market_seg_code=? group by sales_forecast.time_key",new String[]{"+segment+" });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...