1

我正在尝试执行以下操作:我知道可能还有其他方法可以做到这一点,但必须使用临时表。

我相信我应该做的是制作一个临时表,显示一周中的每一天,并在其旁边显示本周迄今为止售出的书籍数量。如果您认为该问题需要其他内容,请告诉我。即使在阅读了临时表之后,我仍然不知道它们是如何工作的。

我在数据库中的表是:

  • 作者
  • 图书
  • 类别
  • 图书分类
  • 顾客
  • 订单
  • 订单行
  • 订单状态

我想你可以假设这些表格填充了什么样的字段。

提前致谢!

4

1 回答 1

1

您没有提供列,所以这是一个猜测。这是你想要的?

select DATENAME(weekday, Orders.OrderDate) as [weekday], Orders.OrderDate as [Date], Category.Description as Category, Authors.State, isnull(SUM(OrderLine.Quantity),0) as [NumberSold]
into #booksales
from Books
Left Outer join OrderLine
on Books.BookID = OrderLine.BookID
Join Orders
on Orders.OrderID=OrderLine.OrderID
Join Authors
on Books.AuthorID = Authors.AuthorID
Join Category
on Books.CategoryID = Category.CategoryID
WHERE Orders.OrderDate BETWEEN @begindate AND @enddate
GROUP BY DATENAME(weekday, Orders.OrderDate), Orders.OrderDate, Category.Description, Authors.State

这假定您有设置为一周的开始和结束日期的 DATE 类型的变量。

于 2013-04-12T02:17:44.260 回答