生成我不想要的数据的SQL语句

时间:2017-05-05 17:32:19

标签: android sqlite

我目前正在尝试从Android Studio上的SQLite数据库中检索一些数据,但我在尝试检索我需要的数据时遇到问题,如果有人可能需要一些时间来帮助我,我将非常感激。如果有人愿意,我目前在SQL Fiddle上设置了所有内容。我还创建了一个私人聊天室,可以实时聊天以更快地解决问题。

对于任何不想加入聊天室但想要使用SQL Fiddle的人来说,我要做的就是做两件事。请阅读下面的数据库模式。

  1. 我正在尝试检索费用以及该费用中涉及的人员名称。令我困惑的是,从1到3人可以参与费用。我在ListView中显示每个费用,并希望在费用名称和金额后显示涉及人员的名称。但是我根据所涉及的人数多次检索费用名称和金额。 ListView的示例输出。

    Rent     | 480 | Tim, Bob, Joe
    Takeaway |  20 | Tim, Joe
    Damages  |  50 | Bob, Joe
    
  2. 正如您所看到的,我尝试检索的数据并不总是一样。

    1. 我有一个活动,我显示每个人的名字和他们拥有的总金额,但想象一下,我们只有一个费用,例如,当显示每个人欠多少时,它显示

      Tim: 480
      Bob: 480
      Joe: 480
      
    2. 当他们被分成160,160,160时。希望我有意义。因此,有两个SQL语句,一个用于上面提到的每个要求。 SQL Fiddle首先包含了我对SQL语句的尝试。

      SQL小提琴链接:http://sqlfiddle.com/#!9/392431/1

      聊天室链接:https://us21.chatzy.com/62202633307431

1 个答案:

答案 0 :(得分:-1)

这适用于SQL-Server。

SELECT e.*
    , p.name
    , CAST(e.amount/COUNT(p.pid) OVER (PARTITION BY e.eid) AS MONEY) AS EachPerson
FROM peoplexpenses pe
INNER JOIN people p
    ON pe.pid = p.pid
INNER JOIN expenses e 
    ON pe.eid = e.eid

请不要在任何地方使用TEXT数据类型。如果您将来需要GROUP BY名称或月份,它将无法工作。