【发布时间】:2020-08-07 14:46:18
【问题描述】:
我的数据库中有 3 个表
CREATE TABLE IF NOT EXISTS depances (
id SERIAL PRIMARY KEY UNIQUE NOT NULL,
type VARCHAR NOT NULL,
nom VARCHAR,
montant DECIMAL(100,2) NOT NULL,
date DATE,
temp TIME)
CREATE TABLE IF NOT EXISTS transactions (
id SERIAL PRIMARY KEY UNIQUE NOT NULL,
montant DECIMAL(100,2),
medecin VARCHAR,
patient VARCHAR,
acte VARCHAR,
date_d DATE,
time_d TIME,
users_id INTEGER)
CREATE TABLE IF NOT EXISTS total_jr (
id SERIAL PRIMARY KEY UNIQUE NOT NULL,
total_revenu DECIMAL(100,2),
total_depance DECIMAL(100,2),
total_différence DECIMAL(100,2),
date DATE)
我的想法是使用 GUI 界面在 table depances 和 transaction 中插入 defrent 值。 然后在 total_depance.total_jr 中添加 montant.depances 的总和 以及 total_revenu.total_jr 中 montant.transactions 的总和,其中所有行都具有相同的时间 这是使用此代码的简单部分
self.cur.execute( '''SELECT SUM(montant) AS totalsum FROM depances WHERE date = %s''',(date,))
result = self.cur.fetchall()
for i in result:
o = i[0]
self.cur_t = self.connection.cursor()
self.cur_t.execute( '''INSERT INTO total_jr(total_depance)
VALUES (%s)'''
, (o,))
self.connection.commit()
self.cur.execute( '''UPDATE total_jr SET total_depance = %s WHERE date = %s''',(o, date))
self.connection.commit()
但是每次它都会在total_jr的表中添加一个新行
如何将 SUM(montant) 的值添加到表中,其中每次仅将 sum 的值放在一行而不是每次添加新行时日期都相同 结果应该是这样的
id|total_revenu|total_depance|total_différence|date
--+------------+-------------+----------------+----
1 sum(montant1) value value 08/07/2020
2 sum(montant2) value value 08/09/2020
3 sum(montant3) value value 08/10/2020
但它只给我这个结果
id|total_revenu|total_depance|total_différence|date
--+------------+-------------+----------------+----
1 1 value value 08/07/2020
2 2 value value 08/07/2020
3 3 value value 08/7/2020
如果有任何想法或任何打击将是 hulpefull
【问题讨论】:
-
。 .
select不会向表中添加行。 -
是的,我只是为了展示我如何计算 SUM
self.cur.execute( '''SELECT SUM(montant) AS totalsum FROM depances WHERE date = %s''',(date,)) result = self.cur.fetchall() for i in result: o = i[0] self.cur_t = self.connection.cursor() self.cur_t.execute( '''INSERT INTO total_jr(total_depance) VALUES (%s)''' , (o,)) self.connection.commit()这是我计算 SUM 的完整代码,它可以正常工作 -
我的问题是如何自动将一行添加到只有一个日期值的表中(这将不是具有相同日期的 2 行)
标签: python sql database postgresql