2014-07-09 65 views
0

在列表中,我有一个项目:商店。 商店有相同的ID,但不同的group_id。 主要关键是shop_id,group_idGROUP BY/HAVING CLAUSE在Sqlite中失败

我第一次显示列表时,我想将这些2(因为它是同一家店) 在下一个屏幕。

所以,我的查询是:

SELECT * FROM TABLE_SHOP GROUP BY ID 

但后来,当我处理它,我需要单独与现场的商店 “完成”= 0/1

如果做= 1,我将禁用该元素。

我尝试添加一个条款:

SELECT * FROM TABLE_SHOP GROUP BY ID HAVING DONE =0 

但是,当一个完成时,店方不再出现在列表中。 (而不是显示一个禁用,一个启用)

任何想法列表中失败?

编辑:

table

我改变字段名称相匹配的图片。 在这种情况下,我想显示列表。 我第一次展示它(所有完成的领域在0),我想商店25975(2记录)只出现一次(这就是为什么我使用GROUP BY)

然后,当我处理一家商店时,它会更新他完成的领域为1.

所以在这一刻,我不想再分组这两行了。它更清晰?

回答

0

我得到它的工作。

的查询是:

SELECT * FROM TABLE_TIENDA WHERE TIENDA_DONE = 0 GROUP BY TIENDA_ID, DONE 

的Tx对您有所帮助

0

HAVING子句的用途是使用聚合函数进行过滤。 试试这个: SELECT * FROM TABLE_TIENDA WHERE TIENDA_DONE = 0 GROUP BY TIENDA_ID

+0

但在这里,我不会看到有TIENDA_DONE = 1。我需要保持它在列表中,店让我可以'禁用它 –

+0

所以,你想要所有的商店都可见?如果是这样,你认为“分开商店”是什么意思?如果您希望“完成”商店与“撤消”分离,例如所有“完成”商店都是列表的顶部,您可以使用ORDER BY子句: SELECT * FROM TABLE_TIENDA ORDER BY TIENDA_DONE,TIENDA_ID,GROUP_ID。 –

+0

当tienda_done = 0时,我想先对它们进行分组。 –