Я ударился головой о стену для чего-то, что, по моему мнению, должно быть простым, но просто не получится работать.SQL-группировка. Как выбрать строку с наибольшим значением столбца при объединении. Нет, CTEs
Я пытаюсь получить строку с наибольшим значением multi_flag, когда я присоединяюсь таблицу А и таблицу В, но я не могу показаться, чтобы получить SQL правильно, потому что она возвращает все строки, а не в один с самое высокое значение multi_flag.
Вот мои таблицы ...
Таблица A
Таблица B
Это почти мой желаемый результат, но только, если я уйду из строки value_id
SELECT CATALOG, VENDOR_CODE, INVLINK, NAME_ID, MAX(multi_flag) AS multiflag
FROM TBLINVENT_ATTRIBUTE AS A
INNER JOIN TBLATTRIBUTE_VALUE AS B
ON A.VALUE_ID = B.VALUE_ID
GROUP BY CATALOG, VENDOR_CODE, INVLINK, NAME_ID
ORDER BY CATALOG DESC
Это близко к тому, что я хочу извлечь, но не совсем заметил, как она возвращает уникальный name_id
и самый высокий multi_flag
, но я также нужен value_id
, который принадлежит к такому multi_flag
/name_id
группировки .. .
Если я включаю value_id в моем SQL заявление, то он возвращает все строки и больше не группируются
Notic Эйн ниже результатов как он больше не возвращает строку для самого высокого multi_flag
и как все разные значения для name_id
(пример. name_id
1) также возвращается
, какую базу данных вы используете? ..удалил неиспользуемый флаг – scaisEdge
http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code-on-so-when-asking-a-question/285557#285557 –
Следить за троллями – rojobo