← 返回题库
初级

查询出入库明细完整列表(汇总报表统计)

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
def solve():
    import sqlite3
    import pandas as pd
    
    conn = sqlite3.connect(':memory:')
    
    base_url = 'https://liangdaima.com/static/data/crm/state_08/'
    
    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 入库单号 AS 单号, 物料编码, 物料名称, 数量, \'入库\' AS 类型 FROM stock_in_items UNION ALL SELECT 出库单号 AS 单号, 物料编码, 物料名称, 数量, \'出库\' AS 类型 FROM stock_out_items').fetchall()
    conn.close()
    return result

示例

输入
print(solve())
期望输出
[('RK20260601001', 'HW001', 'Mate 50', 10, '入库'), ('RK20260601001', 'HW002', 'Mate 50', 8, '入库'), ('RK20260601001', 'HW003', 'P50', 5, '入库'), ('RK20260602001', 'XM001', '小米12X', 12, '入库'), ('RK20260602001', 'XM002', '小米12X', 10, '入库'), ('RK20260603001', 'HW004', 'P50 Pro', 6, '入库'), ('RK20260603001', 'XM003', '小米13', 8, '入库'), ('RK20260603001', 'XM004', '小米13 Pro', 4, '入库'), ('RK20260610001', 'OP001', 'OPPO Find X5', 8, '入库'), ('RK20260610001', 'OP002', 'OPPO Reno8', 10, '入库'), ('RK20260612001', 'VV001', 'vivo X80', 12, '入库'), ('RK20260618001', 'HW001', 'Mate 50', 15, '入库'), ('RK20260618001', 'HW002', 'Mate 50', 12, '入库'), ('RK20260618001', 'HW003', 'P50', 8, '入库'), ('RK20260620001', 'XM001', '小米12X', 20, '入库'), ('RK20260620001', 'XM002', '小米12X', 18, '入库'), ('RK20260620001', 'XM003', '小米13', 15, '入库'), ('RK20260622001', 'OP001', 'OPPO Find X5', 10, '入库'), ('RK20260622001', 'OP002', 'OPPO Reno8', 12, '入库'), ('RK20260625001', 'VV001', 'vivo X80', 15, '入库'), ('RK20260628001', 'AP001', 'iPhone 14', 20, '入库'), ('RK20260701001', 'HW001', 'Mate 50', 10, '入库'), ('RK20260701001', 'HW002', 'Mate 50', 8, '入库'), ('RK20260705001', 'XM001', '小米12X', -2, '入库'), ('CK20260605001', 'HW001', 'Mate 50', 3, '出库'), ('CK20260605001', 'HW002', 'Mate 50', 2, '出库'), ('CK20260605001', 'XM001', '小米12X', 5, '出库'), ('CK20260606001', 'XM002', '小米12X', 4, '出库'), ('CK20260606001', 'XM003', '小米13', 2, '出库'), ('CK20260606001', 'HW003', 'P50', 2, '出库'), ('CK20260615001', 'HW001', 'Mate 50', 5, '出库'), ('CK20260615001', 'OP001', 'OPPO Find X5', 4, '出库'), ('CK20260615001', 'XM001', '小米12X', 3, '出库'), ('CK20260618001', 'VV001', 'vivo X80', 6, '出库'), ('CK20260618001', 'OP002', 'OPPO Reno8', 4, '出库'), ('CK20260620001', 'XM002', '小米12X', 5, '出库'), ('CK20260620001', 'XM003', '小米13', 3, '出库'), ('CK20260702001', 'AP001', 'iPhone 14', 5, '出库'), ('CK20260702001', 'HW001', 'Mate 50', 3, '出库'), ('CK20260708001', 'HW002', 'Mate 50', 4, '出库'), ('CK20260708001', 'OP001', 'OPPO Find X5', 2, '出库'), ('CK20260710001', 'XM004', '小米13 Pro', 2, '出库'), ('CK20260710001', 'VV001', 'vivo X80', 3, '出库'), ('CK20260710001', 'HW004', 'P50 Pro', 1, '出库')]
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码