📅  最后修改于: 2023-12-03 15:09:27.515000             🧑  作者: Mango
本程序是一个基于 Python 的数据库应用,用于统计每个客户在指定时间范围内完成了多少订单。该程序需要连接到数据库,输入时间范围和客户名,即可查询该客户在该时间范围内完成的订单数量。
通过 Python 的第三方库 PyMySQL 连接到 MySQL 数据库。需要输入数据库的 IP 地址、端口号、用户名、密码以及具体的数据库名称。
import pymysql
conn = pymysql.connect(
host='',
port=3306,
user='root',
password='',
database='orders'
)
该程序需要输入查询的时间范围(开始时间和结束时间)和客户名,通过 Python 的 datetime 库来实现时间的转换和比较。
import datetime
start_time_str = input('请输入查询的开始时间(格式为 yyyy-mm-dd):')
start_time = datetime.datetime.strptime(start_time_str, '%Y-%m-%d')
end_time_str = input('请输入查询的结束时间(格式为 yyyy-mm-dd):')
end_time = datetime.datetime.strptime(end_time_str, '%Y-%m-%d')
customer_name = input('请输入客户名称:')
执行 SQL 查询语句,使用 GROUP BY 对每个客户的订单进行统计,并输出查询结果。
cursor = conn.cursor()
sql = f"""
SELECT customer_name, COUNT(*) as count
FROM orders
WHERE customer_name='{customer_name}'
AND order_time BETWEEN '{start_time}' AND '{end_time}'
GROUP BY customer_name
"""
cursor.execute(sql)
result = cursor.fetchone()
print(f"{customer_name} 在 {start_time_str} 到 {end_time_str} 完成了 {result[1]} 个订单")
import pymysql
import datetime
conn = pymysql.connect(
host='',
port=3306,
user='root',
password='',
database='orders'
)
start_time_str = input('请输入查询的开始时间(格式为 yyyy-mm-dd):')
start_time = datetime.datetime.strptime(start_time_str, '%Y-%m-%d')
end_time_str = input('请输入查询的结束时间(格式为 yyyy-mm-dd):')
end_time = datetime.datetime.strptime(end_time_str, '%Y-%m-%d')
customer_name = input('请输入客户名称:')
cursor = conn.cursor()
sql = f"""
SELECT customer_name, COUNT(*) as count
FROM orders
WHERE customer_name='{customer_name}'
AND order_time BETWEEN '{start_time}' AND '{end_time}'
GROUP BY customer_name
"""
cursor.execute(sql)
result = cursor.fetchone()
print(f"{customer_name} 在 {start_time_str} 到 {end_time_str} 完成了 {result[1]} 个订单")
该程序简单实用,可以方便地查询每个客户在指定时间范围内完成的订单数量。该程序还可以进一步完善,例如增加错误处理、查询多个客户的订单等功能。