【问题标题】:SQL = SUM up the TOTALSQL = 总和
【发布时间】:2013-07-29 05:09:36
【问题描述】:
Date           Flight ID    Member ID   Seat Type   Seat Price  
2013-07-28     F71498           M69202          Business    RM 40.00

               F73591           M69202          First           RM 50.00
                                M69202          First           RM 50.00

               F71498           M37520          Business    RM 40.00
                                M69202          Business    RM 40.00
                                                            ===============
                                                            Total : ??
                                                            ===============

我试过下面的 SQL

SELECT 
    r.ReservationDate, r.FlightID, r.MemberID, s.SeatType, s.SeatPrice
FROM 
    flight f, reservation r, seat s, member m
WHERE 
    r.FlightID = f.FlightID 
    AND r.SeatID = s.SeatID 
    AND r.MemberID = m.MemberID 
    AND ReservationDate = '2013-07-28' 
    AND s.FlightID = f.FlightID

我可以按应有的方式生成上面的报告,但我需要帮助来合计SeatPrice.. 我可以知道如何计算总数吗?谢谢先进...=)

【问题讨论】:

  • Bad habits to kick : using old-style JOINs - 旧式 逗号分隔的表格列表 样式已随 ANSI-92 SQL 标准(超过 20 年前)
  • @marc_s 对不起,我是这个论坛的新手......你能帮我解决一下 SQL 吗?
  • 了解您正在使用的什么数据库会很有帮助 - SQL 只是查询语言 - 许多数据库都在使用...。这适用于 MySQL 吗? SQL 服务器?甲骨文? IBM DB2?跨基地?后格雷斯?还是别的什么??
  • 您可以在UNION ALL 的帮助下完成此操作。您将需要使用占位符复制所有其他列,并将最后一列设为 Total
  • @marc_s 我正在使用 MySQL

标签: mysql sql select sum


【解决方案1】:

如果我理解正确,您希望您的结果集如下所示,即最后一行具有总计列和总计值

Date           Flight ID    Member ID   Seat Type   Seat Price  
2013-07-28     F71498        M69202      Business    RM 40.00

2013-07-28     F73591        M69202      First       RM 50.00
2013-07-28     F73591        M69202      First       RM 50.00

2013-07-28     F71498        M37520      Business    RM 40.00
2013-07-28     F71498        M69202      Business    RM 40.00

                                          Total      RM 220.0  

你可以的

SELECT 
    r.ReservationDate, r.FlightID, r.MemberID, s.SeatType, s.SeatPrice
FROM 
    flight f, reservation r, seat s, member m
    INNER JOIN reservation r
       ON r.FlightID = f.FlightID 
    INNER JOIN seat s
       ON r.SeatID = s.SeatID 
    INNER JOIN member m
       ON r.MemberID = m.MemberID
WHERE ReservationDate = '2013-07-28' 
      AND s.FlightID = f.FlightID

UNION

SELECT '','','','Total',SUM(s.SeatPrice)
FROM
FROM 
    flight f, reservation r, seat s, member m
    INNER JOIN reservation r
       ON r.FlightID = f.FlightID 
    INNER JOIN seat s
       ON r.SeatID = s.SeatID 
    INNER JOIN member m
       ON r.MemberID = m.MemberID
WHERE ReservationDate = '2013-07-28' 
      AND s.FlightID = f.FlightID

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 2021-01-22
    相关资源
    最近更新 更多