Объединение MySQL запросов для получения общей суммы - PullRequest
1 голос
/ 19 июня 2020

Я пытаюсь объединить следующие 2 запроса. table_A хранит список доступных встреч, а number_open - это количество открытых слотов для определенной встречи c, в данном случае 2020-06-30 AM, у которой открыто 5 слотов. table_B содержит любые даты, ожидающие принятия, и имеет разные записи для каждого запроса даты, поэтому в этом случае там находятся 2 строки, 2 даты ожидают принятия. Я пытаюсь объединить оба запроса, чтобы получить список того, сколько встреч осталось для каждого слота, поэтому ожидаемые результаты будут table_A.numberopen (5) минус table_B.Count () (2), result = 3 осталось выделить. Все, что я пробую, приводит к возврату дублирующих записей, я не могу сузить его до единственного общего числа для этой встречи. table_A всегда будет иметь запись, но table_B может не иметь никаких совпадающих записей. Заранее благодарим за любую помощь, которую вы можете предоставить.

SELECT      whendate, slot, initials, numberopen
FROM        table_A
WHERE       whendate = '2020-06-30'
AND         slot = 'AM'
AND         numberopen > 0
SELECT    initials 
FROM      table_B
WHERE     date_requested = "2020-06-30"
AND       ampm_requested = 'AM' 

1 Ответ

0 голосов
/ 19 июня 2020

Ваш вопрос не совсем ясен относительно условий соединения между двумя таблицами, однако я подозреваю, что коррелированный подзапрос сделает то, что вы хотите:

select      
    a.whendate, 
    a.slot, 
    a.initials, 
    a.numberopen - (
        select count(*)
        from table_b b 
        where b.date_requested = a.whendate and b.ampm_requested = a.slot
    ) remaining_open
from table_a a
where a.whendate = '2020-06-30' and a.slot = 'AM'
...