前提・実現したいこと
javascript上でalasqlを使い、特定の条件に合致するレコードのみのidを列挙したいです。
データベースをそのまま載せられないので例で挙げますが、このようなデータベースがあります。
id | name | check | money |
---|---|---|---|
1 | Aさん | OK | 2000 |
2 | Bさん | OK | 500 |
3 | Cさん | NG | 1000 |
4 | Aさん | OK | 1400 |
5 | Aさん | NG | 600 |
これをnameでグループ化して、人ごとにOKとNGの合計金額を出し、OKになっているレコードのidを列挙したいです。
【求める結果】
name | OK | NG | ids |
---|---|---|---|
Aさん | 3400 | 600 | 1,4 |
Bさん | 500 | 0 | 2 |
Cさん | 0 | 1000 |
該当のソースコード
alasql
1alasql( "SELECT cust.name, SUM(CASE WHEN cust.check = ? THEN cust.money ELSE 0 END) as [OK], \ 2 SUM(CASE WHEN cust.check = ? THEN cust.money ELSE 0 END) as [NG], \ 3 SUM(CASE WHEN cust.check = ? or cust.check = ? THEN cust.money ELSE 0 END) as [合計], \ 4 GROUP_CONCAT(cust.id) as [ids] \ 5 FROM ? AS cust \ 6 GROUP BY cust.name ORDER BY cust.name", ["OK", "NG", "OK", "NG", database] 7);
【このソースコードでの結果】
name | OK | NG | ids |
---|---|---|---|
Aさん | 3400 | 600 | 1,4,5 |
Bさん | 500 | 0 | 2 |
Cさん | 0 | 1000 | 3 |
GROUP_CONCATを使って人ごとのidを列挙することができましたが、OKのレコードのみの条件を付けられません。
やり方や参考になるサイト等を教えて頂けないでしょうか。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/22 08:30