2014-12-16 3 views
1

Я создаю приложение, которое вычисляет ежемесячную сумму счета для клиентов.Создание настраиваемого набора результатов в MySQL

Я получаю все данные от MySQL в 3 разных запросах, чтобы заполнить 1 таблицу.

Я хотел знать, есть ли способ присоединиться к этим запросам и создать набор результатов с таблицей по умолчанию по моему выбору.

Например, я использую эти запросы отдельно, и данные поступают в одну и ту же таблицу.

// 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 | 
+0

Какова структура таблицы или ваш стол RoomManager? – bish

ответ

0

Мой плохо, UNION в основном concats результирующих. Вы хотели, чтобы настроить набор результатов (что-то в этом роде):

ВЫБРАТЬ Orders.OrderID, Customers.CustomerName, Orders.OrderDate FROM Orders INNER JOIN клиентов на Orders.CustomerID = Customers.CustomerID;

JOIN сочетает в себе две таблицы по общему полю, например, ваш Projectname и поле проекта, позволяя 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

+1

Я ошибался или делал «союз», записывая результаты друг под друга, а не бок о бок? –

+1

Мой плохой, неверный вопрос. Здесь вы идете (обновление происходит через несколько минут) –