在MySQL中创建自定义结果集

时间:2014-12-16 08:51:13

标签: java mysql sql database jtable

我正在构建一个应用程序来计算客户的每月帐单金额。

我从3个不同的查询中获取MySQL的所有数据,以填充1个表。

我想知道是否有办法加入这些查询,并使用我选择的默认表创建结果集。

例如,我单独使用这些quires,数据会转到同一个表格。

// this will get me the prices per hour for the client.

select * from RoomManager.CompanyFinance where ProjectName = 'xxx';

the output will be something like:
ShiftType | Price
----------|------
  OL      |  555
  OFF     |  548
  BKG     |  666
  SND     |  422

//this will get me the amount of products per product for the client to this month.

SELECT ShiftType, COUNT(*) FROM RoomManager.dailyrooms
WHERE Project = 'xxx' 
AND Company = 'yyy'
AND DayDate LIKE \"%yyyy-dd%"                               
GROUP BY ShiftType;";

the output will be something like:
ShiftType | COUNT
----------|------
  OL      |  2
  OFF     |  1
  BKG     |  0
  SND     |  3

//this will get me the amount of cancellations

SELECT WasCancelled, COUNT(*) FROM RoomManager.dailyrooms
WHERE WasCancelled = 2 
AND Project = 'xxx'
GROUP BY WasCancelled;

the output will be something like:
WasCancelled | COUNT
-------------|------
  2          |  6

有没有办法组合查询并获得单个结果集,如下所示:

ShiftType | Price | COUNT | Was Cancelled
----------|---------------|--------------
  OL      |  555  |   2   |       6
  OFF     |  548  |   1   |
  BKG     |  666  |   0   |
  SND     |  422  |   3   |

1 个答案:

答案 0 :(得分:0)

我的不好,UNION基本上可以查询结果集。你想自定义结果集(类似的东西):

  

SELECT Orders.OrderID,Customers.CustomerName,Orders.OrderDate FROM Orders INNER JOIN Customers on Orders.CustomerID = Customers.CustomerID;

JOIN将两个表组合在一个公共字段中,例如ProjectName和Project字段,允许SQL引擎将两个不同的结果合并到一个由公共字段标识的结果中。

请参阅:http://www.w3schools.com/sql/sql_join.asp

注意:我正在撰写类似的东西'因为它是一个例子,而不是解决方案。它旨在向您展示将两个或更多表格的字段组合在一起的可能性 - 您仍然可以根据自己的具体情况来完成工作并使其运行。


旧(对于这种情况不正确)回答:

可能的方法是使用MySQL UNION关键字:

  

SELECT * FROM mySchema.myTable UNION SELECT * FROM mySchema.myOtherTable

请参阅:http://www.mysqltutorial.org/sql-union-mysql.aspx