2015-11-18 16 views
0

Я работаю над запросом в следующем формате: Мне нужны все столбцы из базы данных «А», в то время как мне требуется суммарная сумма (сумма) из базы данных «В».Метод группировки

SELECT A.*, sum(B.CURTRXAM) as 'Current Transaction Amt' 
    FROM A 
    LEFT JOIN C 
    ON A.Schedule_Number = C.Schedule_Number 
    LEFT JOIN B 
    ON A.DOCNUMBR = B.DOCNUMBR 
    ON A.CUSTNMBR = B.CUSTNMBR 

    GROUP BY A 
    ORDER BY A.CUSTNMBR 

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

GROUP BY A 

Я не уверен, что существует более простой способ, поскольку я новичок в SQL, я ранее изучал инструкции GROUPING_ID, но об этом.

Любая помощь на сосредоточенных методы группировки было бы полезно

+0

Я предполагаю, что группировка по всем столбцам от А на самом деле _not_ что вам нужно. Я считаю, что вы пытаетесь сделать это, чтобы «ВЫБРАТЬ» все столбцы из A с соответствующими значениями и добавить 'SUM'. Это правильно? И если да, то A.DOCNUMBER - уникальный ключ или нет? – Kleskowy

+0

Да, нумерометр однозначно определяет значения, которые я хочу. Я фактически выполнил свой запрос без суммирования, и он работает. Мне просто нужно вручную суммировать результаты на excel (из-за крайнего срока, который я должен был выполнить). Я также сгруппировал его, просто попросив номер учетной записи в элементе выбора, но это не то, чего хочет конечный пользователь. –

+0

1. Что такое 'RM20401'? 2. Предложение 'ORDER BY' происходит после предложения GROUP BY. 3. LEFT JOIN C, вероятно, приведет к добавлению значений «CURTRXAM» многократным. Желательно? –

ответ

0

Поскольку docnumber является первичным ключом - просто использовать следующий SQL:

SELECT A.*, sum(B.CURTRXAM) as 'Current Transaction Amt' 
FROM A 
LEFT JOIN C 
ON A.Schedule_Number = C.Schedule_Number 
LEFT JOIN B 
ON A.DOCNUMBR = B.DOCNUMBR 
ORDER BY RM20401.CUSTNMBR 
GROUP BY A.DOCNUMBR