我一直在努力,但我是SQL的新手,我想知道是否有人可以帮助解决我的问题。
1)我想要显示我的数据库中特定客户订购的项目的基本列表。
2)列出上周订购的所有订单:
SELECT Order.Order_number, Customer.Customer_email, Order.Date
FROM Order
INNER JOIN Customer
ON Order.???? =????;
(还需要使用BETWEEN语句显示日期,但我不清楚如何)
只需要最基本的解决方案。
谢谢,如果有人可以提供帮助。
答案 0 :(得分:0)
SELECT Order.Order_number, Customer.Customer_email, Order.Date
FROM Order
WHERE Order.date BETWEEN 'date1' AND 'date2'
INNER JOIN Customer ON Order
只需弹出您需要订单的日期。硬编码不是最好的解决方案,但它更容易。只要记住,当你要开始更大规模的编码时,要尽可能地使事物变得动态,否则你会将自己编码到一个角落。
我希望语法可以帮到你。
答案 1 :(得分:0)
你应该尝试这些方面的东西:
SELECT Order.Order_number, Customer.Customer_email, Order.Date
FROM Order
INNER JOIN Customer
ON Order.CustomerID = Customer.CustomerID
WHERE Order.Date BETWEEN @datefrom and @dateto
由于您没有发布表结构,这只是一个建议
答案 2 :(得分:0)
首先确定订单和客户之间的关系是什么? 我假设您有一个客户ID字段,订单也有客户ID也作为外键 所以...
SELECT
Order.Order_number,
Customer.Customer_email,
Order.Date
FROM Order INNER JOIN Customer ON Order.CustomerID = Customer.CustomerID
这样就可以对你的关系进行分类(请注意,由于你没有提供实体的配置,所以请注意这一点。)
接下来你想看看之间的日期?那么通常在进行用户输入时(再次假设)你需要一个存储过程。
所以
CREATE PROCEDURE MyStoredProcedureName
@orderdatefrom as datetime,
@orderdatetoo as datetime
AS
SELECT
Order.Order_number,
Customer.Customer_email,
Order.Date
FROM Order INNER JOIN Customer ON Order.CustomerID = Customer.CustomerID
WHERE (order.date >= @orderdatefrom AND order.date <= @orderdatetoo)
ORDER BY order.date asc
所以@paramters在那里提供用户输入,你只需在条件子句中使用它们(请注意,如果你改变连接说,左连接,你需要使用AND而不是WHERE)
由于你没有提供太多信息,所以这些都是假设某些事情。 希望它有所帮助