← 返回题库
初级

查询入库明细关联商品(业务扩大-多表联合)

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
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 i.*, p.物料名称, p.物料规格 FROM stock_in_items i JOIN products p ON i.物料编码 = p.物料编码').fetchall()
    conn.close()
    return result

示例

输入
print(solve())
期望输出
[(1, 'RK20260601001', 'HW001', 'Mate 50', '曜金黑(8+256G)', '台', 10, None, 'Mate 50', '曜金黑(8+256G)'), (2, 'RK20260601001', 'HW002', 'Mate 50', '流光紫(8+256G)', '台', 8, None, 'Mate 50', '流光紫(8+256G)'), (3, 'RK20260601001', 'HW003', 'P50', '雪域白(8+128G)', '台', 5, None, 'P50', '雪域白(8+128G)'), (4, 'RK20260602001', 'XM001', '小米12X', '黑色(8+256G)', '台', 12, None, '小米12X', '黑色(8+256G)'), (5, 'RK20260602001', 'XM002', '小米12X', '蓝色(8+256G)', '台', 10, None, '小米12X', '蓝色(8+256G)'), (6, 'RK20260603001', 'HW004', 'P50 Pro', '可可茶金(8+256G)', '台', 6, None, 'P50 Pro', '可可茶金(8+256G)'), (7, 'RK20260603001', 'XM003', '小米13', '黑色(12+256G)', '台', 8, None, '小米13', '黑色(12+256G)'), (8, 'RK20260603001', 'XM004', '小米13 Pro', '旷野绿(12+512G)', '台', 4, None, '小米13 Pro', '旷野绿(12+512G)'), (9, 'RK20260610001', 'OP001', 'OPPO Find X5', '雅白(8+256G)', '台', 8, None, 'OPPO Find X5', '雅白(8+256G)'), (10, 'RK20260610001', 'OP002', 'OPPO Reno8', '夜游黑(8+256G)', '台', 10, None, 'OPPO Reno8', '夜游黑(8+256G)'), (11, 'RK20260612001', 'VV001', 'vivo X80', '至黑(8+256G)', '台', 12, None, 'vivo X80', '至黑(8+256G)')]
Python 代码 🔒 登录后使用
🔒

登录后即可练习

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