4

問題があります:

私のSQLite(Androidのsqlite3)データベースには、次のようなテーブルがあります:

idImp  | cer  | caus
---------------------
id1    | 010  | D1
id1    | 010  | D2
id1    | 011  | D2
id1    | 011  | D3
id2    | 010  | D1
id2    | 010  | D2
id2    | 011  | D2
id2    | 011  | D4

そして私は行きたいです

idImp | Conc
id1   | '010-D1-D2;011-D2-D3;'
id2   | '010-D1-D2;011-D2-D4;'

SQLiteを使用することは可能ですか?? これを機能させる方法を知っている人はいますか?

ありがとう!

EDIT(SRY、結果表にエラーがありました):

必要なのは、フィールド「caus」とフィールド「cer」を「idImp」でグループ化された特定のセパレーターで連結する SQL クエリです。

単一の列で機能する sqlite group_concat (X, Y) のドキュメントで見つけましたが、複数の列を連結する必要があり、その方法がわかりません...

4

1 に答える 1

8

2 つのステップで値をグループ化します。

SELECT idImp,
       group_concat(causConc, '') AS Conc
FROM (SELECT idImp,
             cer || '-' || group_concat(caus, '-') || ';' AS causConc
      FROM MyTable
      GROUP BY idImp,
               cer)
GROUP BY idImp
于 2013-11-06T21:54:40.643 に答える