Соедините 1 или 2 таблицы, используя команду Max - PullRequest
0 голосов
/ 03 октября 2011

Может ли кто-нибудь помочь мне объединить их в таблицы и извлечь PRODUCT_ID, PRODUCT_CODE, PRODUCT_NAME и LAST_ORDER_DATE, поскольку они не имели большого опыта работы только с SQL MYSQL.

Я не уверен, нужна ли мне вторая таблица или можно использовать MAX только в ODBC_ORDER_LINE_ALL.

Таблица 1

Name: ODBC_ORDER_LINE_ALL

ORDER_LINE_ID

ORDER_LINE_DATE

ORDER_LINE_PRODUCT_ID

ORDER_LINE_PRODUCT_CODE

ORDER_LINE_PRODUCT_NAME

Таблица 2

Name: ODBC_PRODUCT_ALL

PRODUCT_ID

PRODUCT_CODE

PRODUCT_NAME

Заранее спасибо.

Рой

Ответы [ 2 ]

0 голосов
/ 03 октября 2011

Вам не нужен второй стол.

С вашей текущей реализацией запрос будет

SELECT ORDER_LINE_PRODUCT_ID, 
       ORDER_LINE_PRODUCT_CODE, 
       ORDER_LINE_PRODUCT_NAME, 
       MAX(ORDER_LINE_DATE)
FROM ODBC_ORDER_LINE_ALL
GROUP BY ORDER_LINE_PRODUCT_ID

Однако вам нужно нормализовать вашу первую таблицу. Предполагая, что идентификатор продукта, код продукта и название продукта в таблице строк заказа ссылаются на те же значения в таблице продуктов,
(И что один идентификатор продукта соответствует только одному коду и названию продукта),
Ваша структура таблицы для Table 1: ODBC_ORDER_LINE_ALL должна быть

ORDER_LINE_ID
ORDER_LINE_DATE
Foreign key (ORDER_LINE_PRODUCT_ID) references ODBC_PRODUCT_ALL(PRODUCT_ID)

В этом случае запрос будет

SELECT ORDER_LINE_PRODUCT_ID, PRODUCT_CODE, PRODUCT_NAME,  MAX(ORDER_LINE_DATE), 
FROM ODBC_ORDER_LINE_ALL 
     JOIN ODBC_PRODUCT_ALL
     ON  ORDER_LINE_PRODUCT_ID = PRODUCT_ID
GROUP BY ORDER_LINE_PRODUCT_ID
0 голосов
/ 03 октября 2011

Вы пробовали простую группировку, например:

SELECT ORDER_LINE_PRODUCT_ID,ORDER_LINE_PRODUCT_CODE,ORDER_LINE_PRODUCT_NAME, MAX(ORDER_LINE_DATE)
FROM ODBC_ORDER_LINE_ALL
GROUP BY ORDER_LINE_PRODUCT_ID,ORDER_LINE_PRODUCT_CODE,ORDER_LINE_PRODUCT_NAME
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...