【问题标题】:How Can I Show Data in One Line With SQL如何使用 SQL 在一行中显示数据
【发布时间】:2018-02-05 15:00:52
【问题描述】:

添加购物篮后,我订购了“Cookie”和“Coffee”产品。那么这是我的Order 表:

然后我写了如下代码:

SELECT Order.OrderDate
    , User.NAME
    , User.Surname
    , User.Phone
    , User.Adress
    , Product.ProductName
    , Order.Price
    , Order.Piece
    , Cargo.CargoPrice 
FROM Order 
INNER JOIN User ON Order.UserID = User.UserID 
INNER JOIN Product ON Order.ProductID = Product.ProductID 
INNER JOIN Cargo ON Order.CargoID = Cargo.CargoID 
WHERE Order.OrderDate = '2018-02-05 17:30:13.000' 
AND Order.UserID = '1'

所以输出如下:

所以我的订单总价值必须是 90 + 80 + 7 = 177,我想在一行中显示这些值:user nameuser surnametotal priceproduct date

【问题讨论】:

  • 如果用户在同一天下了 7 个订单怎么办...我无法确定您是否希望将这些行并排或分组/总计...请澄清
  • 你希望它在一行中,好的,希望这一行包含什么信息?
  • @a_horse_with_no_name of all the cmets at the thread you's make me几乎吐出我的咖啡,我笑得很厉害。 “您是否在您的编程语言(Java、C++、Scala ......)中为所有类添加 Class 前缀?”
  • 您需要帮助我们了解您在这里想要什么。我们看到了几行数据,但不知道您期望的输出是什么。我不得不说,从发布的内容来看,这应该是两张桌子,而不是一张。这是一个很好的地方,可以让您了解想从您那里看到什么。 spaghettidba.com/2015/04/24/…

标签: sql sql-server sql-server-2012


【解决方案1】:

我认为这可以解决您的问题

SELECT 
      User.NAME
    , User.Surname
    , TotalPrice = SUM((Order.Price * Order.Piece) + MIN(Cargo.CargoPrice) )
    , Order.OrderDate
FROM Order 
INNER JOIN User ON Order.UserID = User.UserID 
INNER JOIN Product ON Order.ProductID = Product.ProductID 
INNER JOIN Cargo ON Order.CargoID = Cargo.CargoID 
WHERE Order.OrderDate = '2018-02-05 17:30:13.000' 
AND Order.UserID = '1'
GROUP BY
      User.NAME
    , User.Surname
    , Order.OrderDate

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多