首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >时,查询用例生成SQlite列表视图。

时,查询用例生成SQlite列表视图。
EN

Stack Overflow用户
提问于 2019-11-29 18:24:10
回答 2查看 91关注 0票数 0

尝试在Android中显示sqlite信息,在DB浏览器中进行了测试,测试结果显示出了预期的结果,但我无法在安卓系统中实现。

实表如下所示:

Sqlite查询

代码语言:javascript
复制
SELECT
    number as no,
    outletname as name,

    (CASE WHEN week = "WEEK1" THEN sunday ELSE 0 END) AS WK1S,
    (CASE WHEN week = "WEEK1" THEN monday  ELSE 0 END) AS WK1M,
    (CASE WHEN week = "WEEK1" THEN tuesday ELSE 0 END) AS WK1T,
    (CASE WHEN week = "WEEK1" THEN wednesday ELSE 0 END) AS WK1W,
    (CASE WHEN week = "WEEK1" THEN thursday ELSE 0 END) AS WK1T,
    (CASE WHEN week = "WEEK1" THEN saturday ELSE 0 END) AS WK1SA,
    (CASE WHEN week = "WEEK2" THEN sunday ELSE 0 END) AS WK2S,
    (CASE WHEN week = "WEEK2" THEN monday ELSE 0 END) AS WK21M,
    (CASE WHEN week = "WEEK3" THEN sunday ELSE 0 END) AS WK3S,
    (CASE WHEN week = "WEEK3" THEN monday ELSE 0 END) AS WK3M,
    (CASE WHEN week = "WEEK3" THEN tuesday ELSE 0 END) AS WK3T,
    (CASE WHEN week = "WEEK3" THEN wednesday ELSE 0 END) AS WK3W,
    (CASE WHEN week = "WEEK3" THEN thursday ELSE 0 END) AS WK3T,
    (CASE WHEN week = "WEEK3" THEN saturday ELSE 0 END) AS WK3SA

FROM labels5

     UNION   all
     SELECT "GRAND TOTAL",
    NULL ,


      COUNT(CASE WHEN week = "WEEK1" AND sunday LIKE "%sunday%" THEN 1 END) AS WK1S,
    COUNT(CASE WHEN week = "WEEK1" AND monday LIKE "%monday%" THEN 1 END) AS WK1M,
    COUNT(CASE WHEN week = "WEEK1" AND tuesday LIKE "%tuesday%" THEN 1 END) AS WK1T,
    COUNT(CASE WHEN week = "WEEK1" AND wednesday LIKE "%wednesday%" THEN 1 END) AS WK1W,
    COUNT(CASE WHEN week = "WEEK1" AND thursday LIKE "%thursday%" THEN 1 END) AS WK1T,
    COUNT(CASE WHEN week = "WEEK1" AND saturday LIKE "%saturday%" THEN 1 END) AS WK1SA,
    COUNT(CASE WHEN week = "WEEK2" AND sunday LIKE "%sunday%" THEN 1 END) AS WK2S,
   COUNT(CASE WHEN week = "WEEK2" AND monday LIKE "%monday%" THEN 1 END) AS WK2M,
      COUNT(CASE WHEN week = "WEEK1" AND sunday LIKE "%sunday%" THEN 1 END) AS WK3S,
    COUNT(CASE WHEN week = "WEEK3" AND monday LIKE "%monday%" THEN 1 END) AS WK3M,
    COUNT(CASE WHEN week = "WEEK3" AND tuesday LIKE "%tuesday%" THEN 1 END) AS WK3T,
    COUNT(CASE WHEN week = "WEEK3" AND wednesday LIKE "%wednesday%" THEN 1 END) AS WK3W,
    COUNT(CASE WHEN week = "WEEK3" AND thursday LIKE "%thursday%" THEN 1 END) AS WK3T,
    COUNT(CASE WHEN week = "WEEK3" AND saturday LIKE "%saturday%" THEN 1 END) AS WK3SA

     FROM labels5

查询输出:

布局:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#FFC7C7C7"
    android:orientation="vertical"
    android:divider="@drawable/mydivider"
    android:showDividers="middle"
    android:dividerPadding="22dp"
    android:weightSum="9">



    <LinearLayout
        android:id="@+id/lvcontainer"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_alignParentTop="true"
        android:layout_weight="0.5"
        android:background="#FFC7C7C7"
        android:orientation="horizontal"
        android:padding="1dp"
        android:weightSum="3">

        <TextView
            android:id="@+id/txtproductcompany"
            style="?android:dividerVertical"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.63"
            android:gravity="left"
            android:text="number"
            android:textColor="#000000"
            android:textSize="13sp" />

        <TextView
            android:id="@+id/txtproductname"
            style="?android:dividerVertical"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.59"
            android:gravity="left"
            android:padding="3dp"
            android:text="name"
            android:textColor="#000000"
            android:textSize="9sp" />


        <TextView
            android:id="@+id/txtproductprice1"
            style="?android:dividerVertical"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:padding="3dp"
            android:text="WK1S"
            android:textColor="#000000"
            android:textSize="13sp" />

        <TextView
            android:id="@+id/txtproductprice1"
            style="?android:dividerVertical"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:padding="3dp"
            android:text="WK1M"
            android:textColor="#000000"
            android:textSize="13sp" />

        <TextView
            android:id="@+id/txtproductprice2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:padding="3dp"
            android:text="WK1T"
            android:textColor="#000000"
            android:textSize="13sp" />

        <TextView
            android:id="@+id/txtproductprice3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:padding="3dp"
            android:text="WK1W"
            android:textColor="#000000"
            android:textSize="13sp" />
        <TextView
            android:id="@+id/txtproductprice4"
            android:layout_width="56dp"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:padding="3dp"
            android:text="WK1TH"
            android:textColor="#000000"
            android:textSize="13sp" />
        <TextView
            android:id="@+id/txtproductprice5"
            android:layout_width="45dp"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:padding="3dp"
            android:text="WK2SA"
            android:textColor="#000000"
            android:textSize="13sp" />

        <TextView
            android:id="@+id/txtproductprice122"
            style="?android:dividerVertical"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:padding="3dp"
            android:text="WK2S"
            android:textColor="#000000"
            android:textSize="13sp" />

        <TextView
            android:id="@+id/txtproductprice11"
            style="?android:dividerVertical"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:padding="3dp"
            android:text="WK2M"
            android:textColor="#000000"
            android:textSize="13sp" />

        <TextView
            android:id="@+id/txtproductprice22"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:padding="3dp"
            android:text="WK2T"
            android:textColor="#000000"
            android:textSize="13sp" />

        <TextView
            android:id="@+id/txtproductprice31"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:padding="3dp"
            android:text="WK2W"
            android:textColor="#000000"
            android:textSize="13sp" />
        <TextView
            android:id="@+id/txtproductprice41"
            android:layout_width="56dp"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:padding="3dp"
            android:text="WK2TH"
            android:textColor="#000000"
            android:textSize="13sp" />
        <TextView
            android:id="@+id/txtproductprice51"
            android:layout_width="45dp"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:padding="3dp"
            android:text="WK2SA"
            android:textColor="#000000"
            android:textSize="13sp" />


        <TextView
            android:id="@+id/txtproductprice19"
            style="?android:dividerVertical"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:padding="3dp"
            android:text="WK3S"
            android:textColor="#000000"
            android:textSize="13sp" />

        <TextView
            android:id="@+id/txtproductprice13"
            style="?android:dividerVertical"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:padding="3dp"
            android:text="WK3M"
            android:textColor="#000000"
            android:textSize="13sp" />

        <TextView
            android:id="@+id/txtproductprice23"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:padding="3dp"
            android:text="WK3T"
            android:textColor="#000000"
            android:textSize="13sp" />

        <TextView
            android:id="@+id/txtproductprice33"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:padding="3dp"
            android:text="WK3W"
            android:textColor="#000000"
            android:textSize="13sp" />
        <TextView
            android:id="@+id/txtproductprice43"
            android:layout_width="56dp"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:padding="3dp"
            android:text="WK3TH"
            android:textColor="#000000"
            android:textSize="13sp" />
        <TextView
            android:id="@+id/txtproductprice53"
            android:layout_width="45dp"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:padding="3dp"
            android:text="WK3SA"
            android:textColor="#000000"
            android:textSize="13sp" />
    </LinearLayout>


    <ListView
        android:id="@android:id/list"
        android:layout_height="0dp"
        android:layout_below="@+id/lvcontainer"
        android:layout_weight="8.72"
        android:layout_width="match_parent"
        android:divider="@drawable/separator_line"
        android:dividerHeight="4.0sp"
        android:layout_marginTop="@dimen/activity_vertical_margin"
        android:orientation="vertical"
        android:dividerPadding="10dp"
        android:layout_centerVertical="true"
        android:showDividers="beginning|middle|end"
        android:cacheColorHint="#00000000"
        android:footerDividersEnabled="true"
        android:headerDividersEnabled="true"


        ></ListView>


    <TextView
        android:id="@+id/txtresulttext"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_below="@android:id/list"
        android:layout_marginLeft="5dp"
        android:layout_marginTop="2dp"
        android:layout_weight="0.5"
        android:gravity="left"
        android:text=""
        android:textColor="#FFF55F54"
        android:textSize="20sp"
        android:textStyle="italic|bold"></TextView>




    <LinearLayout
        android:id="@+id/lvbottom"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_alignParentBottom="true"
        android:layout_weight="1"
        android:orientation="horizontal"
        android:weightSum="1">

        <Button
            android:id="@+id/btnupload"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#1083f5"
            android:gravity="center"
            android:text="UPLOAD"
            android:textColor="#ffffff"
            android:textSize="15sp"
            android:textStyle="bold"
            android:visibility="invisible" />
    </LinearLayout>

</LinearLayout>

尝试使用以下游标,但没有结果

代码语言:javascript
复制
  public ArrayList<HashMap<String, String>> getAllProducts12() {

        ArrayList<HashMap<String, String>> journalList;
        journalList = new ArrayList<HashMap<String, String>>();
        //String selectQuery = "SELECT  * FROM labels5";
        SQLiteDatabase database = this.getWritableDatabase();
            String sql1="SELECT number,outletname ("+"CASE WHEN week = WEEK1 THEN sunday ELSE 0 END) AS WK1S," +
                    "(CASE WHEN week = WEEK1 THEN monday ELSE 0 END) AS WK1M,"+
             "(CASE WHEN week = WEEK1 THEN thursday ELSE 0 END) AS WK1TH,"
            +"(CASE WHEN week = WEEK1 THEN tuesday ELSE 0 END) AS WK1T,"
            +"(CASE WHEN week = WEEK1 THEN wednesday ELSE 0 END) AS WK1W,"

                + "FROM" + "labels5 UNION all SELECT GRANDTOTAL"  +"NULL" +

                    "COUNT(CASE WHEN week = WEEK1 AND sunday LIKE sunday THEN 1 END) AS WK1S," +
        "COUNT(CASE WHEN week = WEEK1 AND monday LIKE monday THEN 1 END) AS WK1M,"+
                "COUNT(CASE WHEN week = WEEK1 AND tuesday LIKE tuesday THEN 1 END) AS WK1MT," +
                    "COUNT(CASE WHEN week = WEEK1 AND thursday LIKE thursday THEN 1 END) AS WK1TH,"
                +"COUNT(CASE WHEN week = WEEK1 AND wednesday LIKE wednesday THEN 1 END) AS WK1W,FROM" + "labels5";

        Cursor cursor=database.rawQuery(sql1,null);
        if (cursor.moveToFirst()) {

            do {
                //Id, Company,Name,Price
                HashMap<String, String> map = new HashMap<String, String>();
                map.put("WK1S", cursor.getString(0));
                map.put("WK1M", cursor.getString(1));
                map.put("WK1T", cursor.getString(2));
                map.put("WK1W", cursor.getString(3));
                map.put("WK1TH", cursor.getString(4));
               
                journalList.add(map);
                Log.e("dataofList",cursor.getString(0)+","+cursor.getString(1)+","+cursor.getString(2)+","+cursor.getString(3)+","+cursor.getString(4)+","+cursor.getString(4));
            } while (cursor.moveToNext());
        }
        return journalList;

错误:

由:GRANDTOTALNULLCOUNT (代码1 SQLITE_ERROR2):,编译时:选择number,outletname (当while = WEEK1,然后再使用周日SQLITE_ERROR 0 END)为WK1S,(当WHEN = WEEK1,再周一SQLITE_ERROR 0结束时)为WK1M,(当week = WEEK1,然后再到周四SQLITE_ERROR 0结束时)为WK1TH,(当week = WEEK1,然后星期二number 0结束时)为WK1T,(当while= WEEK1,然后周三number 0结束时)为WK1W,在android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native方法中,FROMlabels5 UNION都选择GRANDTOTALNULLCOUNT(当星期= WEEK1,周日像周日,然后1结束)为WK1S,计数(当星期= WEEK1,星期一像星期一,然后1结束)为WK1M,计数(当星期= WEEK1,星期二像星期二,然后是1结束)为WK1MT,计数(当星期= WEEK1,星期四像星期四,第1结束)为WK1TH,计数(当星期= WEEK1,星期三像星期三,然后结束)为WK1W,FROMlabels5在WK1MT。

对于rawquery是否支持这个场景非常不确定。如果有人能用建议光标查询来识别光线,或任何其他人都会非常感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-12-01 21:12:00

当您连接一些sql代码时,请确保在这些代码段之间包含空格或逗号,如果像"GRAND TOTAL"这样的列包含非法字符(空格),将其括在方括号中,或者如果它是字符串,则用单引号将其括起来:

代码语言:javascript
复制
String sql1 = "SELECT " +
    "number as no, " +
    "outletname as name, " +
    "(CASE WHEN week = 'WEEK1' THEN sunday ELSE 0 END) AS WK1S, " +
    "(CASE WHEN week = 'WEEK1' THEN monday  ELSE 0 END) AS WK1M, " +
    "(CASE WHEN week = 'WEEK1' THEN tuesday ELSE 0 END) AS WK1T, " +
    "(CASE WHEN week = 'WEEK1' THEN wednesday ELSE 0 END) AS WK1W, " +
    "(CASE WHEN week = 'WEEK1' THEN thursday ELSE 0 END) AS WK1T, " +
    "(CASE WHEN week = 'WEEK1' THEN saturday ELSE 0 END) AS WK1SA, " +
    "(CASE WHEN week = 'WEEK2' THEN sunday ELSE 0 END) AS WK2S, " +
    "(CASE WHEN week = 'WEEK2' THEN monday ELSE 0 END) AS WK21M, " +
    "(CASE WHEN week = 'WEEK3' THEN sunday ELSE 0 END) AS WK3S, " +
    "(CASE WHEN week = 'WEEK3' THEN monday ELSE 0 END) AS WK3M, " +
    "(CASE WHEN week = 'WEEK3' THEN tuesday ELSE 0 END) AS WK3T, " +
    "(CASE WHEN week = 'WEEK3' THEN wednesday ELSE 0 END) AS WK3W, " +
    "(CASE WHEN week = 'WEEK3' THEN thursday ELSE 0 END) AS WK3T, " +
    "(CASE WHEN week = 'WEEK3' THEN saturday ELSE 0 END) AS WK3SA " +
    "FROM labels5 " +
    "UNION all " +
    "SELECT  " +
    "'GRAND TOTAL', " +
    "NULL , " +
    "COUNT(CASE WHEN week = 'WEEK1' AND sunday LIKE '%sunday%' THEN 1 END) AS WK1S, " +
    "COUNT(CASE WHEN week = 'WEEK1' AND monday LIKE '%monday%' THEN 1 END) AS WK1M, " +
    "COUNT(CASE WHEN week = 'WEEK1' AND tuesday LIKE '%tuesday%' THEN 1 END) AS WK1T, " +
    "COUNT(CASE WHEN week = 'WEEK1' AND wednesday LIKE '%wednesday%' THEN 1 END) AS WK1W, " +
    "COUNT(CASE WHEN week = 'WEEK1' AND thursday LIKE '%thursday%' THEN 1 END) AS WK1T, " +
    "COUNT(CASE WHEN week = 'WEEK1' AND saturday LIKE '%saturday%' THEN 1 END) AS WK1SA, " +
    "COUNT(CASE WHEN week = 'WEEK2' AND sunday LIKE '%sunday%' THEN 1 END) AS WK2S, " +
    "COUNT(CASE WHEN week = 'WEEK2' AND monday LIKE '%monday%' THEN 1 END) AS WK2M, " +
    "COUNT(CASE WHEN week = 'WEEK1' AND sunday LIKE '%sunday%' THEN 1 END) AS WK3S, " +
    "COUNT(CASE WHEN week = 'WEEK3' AND monday LIKE '%monday%' THEN 1 END) AS WK3M, " +
    "COUNT(CASE WHEN week = 'WEEK3' AND tuesday LIKE '%tuesday%' THEN 1 END) AS WK3T, " +
    "COUNT(CASE WHEN week = 'WEEK3' AND wednesday LIKE '%wednesday%' THEN 1 END) AS WK3W, " +
    "COUNT(CASE WHEN week = 'WEEK3' AND thursday LIKE '%thursday%' THEN 1 END) AS WK3T, " +
    "COUNT(CASE WHEN week = 'WEEK3' AND saturday LIKE '%saturday%' THEN 1 END) AS WK3SA " +
    "FROM labels5";
票数 2
EN

Stack Overflow用户

发布于 2019-12-01 21:08:23

您可能遗漏了这些列之间的空格:"labels5 UNION all选择GRANDTOTAL“+"NULL”+ COUNT .尝试将其更改为:"labels5 UNION all选择GRANDTOTAL“+"NULL”+ "COUNT .

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59109534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档