初级
统计各商品出入库(业务扩大-多表联合)
未完成
初级参考
完整示例代码供参考,建议自己理解后重新输入
def solve():
import sqlite3
import pandas as pd
conn = sqlite3.connect(':memory:')
base_url = 'https://liangdaima.com/static/data/crm/state_03/'
tables = ['suppliers', 'customers', 'products',
'stock_in', 'stock_in_items',
'stock_out', 'stock_out_items']
for table in tables:
try:
url = base_url + table + '.csv'
df = pd.read_csv(url)
df.to_sql(table, conn, index=False)
except Exception as e:
pass
result = conn.execute('SELECT p.物料编码, p.物料名称, COALESCE(i.入库总量, 0) AS 入库, COALESCE(o.出库总量, 0) AS 出库 FROM products p LEFT JOIN (SELECT 物料编码, SUM(数量) AS 入库总量 FROM stock_in_items GROUP BY 物料编码) i ON p.物料编码 = i.物料编码 LEFT JOIN (SELECT 物料编码, SUM(数量) AS 出库总量 FROM stock_out_items GROUP BY 物料编码) o ON p.物料编码 = o.物料编码').fetchall()
conn.close()
return result
示例
输入
print(solve())
期望输出
[('HW001', 'Mate 50', 10, 8), ('HW002', 'Mate 50', 8, 2), ('HW003', 'P50', 5, 2), ('HW004', 'P50 Pro', 6, 0), ('XM001', '小米12X', 12, 8), ('XM002', '小米12X', 10, 4), ('XM003', '小米13', 8, 2), ('XM004', '小米13 Pro', 4, 0), ('OP001', 'OPPO Find X5', 8, 4), ('OP002', 'OPPO Reno8', 10, 0), ('VV001', 'vivo X80', 12, 0), ('AP001', 'iPhone 14', 0, 0)]
👑
升级 VIP
解锁全部题目,畅通无阻地学习
- ✓ 解锁全部训练包所有题目
- ✓ 查看完整参考代码和提示
- ✓ 浏览器内直接运行 Python 代码
- ✓ 自动批改 + 进度追踪
30天
¥18
1年
¥99
2年
¥158
3年
¥199