有人可以帮助我将这些表格加入表格并提取PRODUCT_ID,PRODUCT_CODE,PRODUCT_NAME和LAST_ORDER_DATE,因为他们对SQL只有MYSQL没有多少经验。
我不确定我是否需要第二个表,或者是否可以在ODBC_ORDER_LINE_ALL中使用MAX。
表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
提前致谢。
罗伊
答案 0 :(得分:0)
您是否尝试过简单分组:
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
答案 1 :(得分:0)
您不需要第二张表。
使用您当前的实现,查询将是
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
但是,您需要规范化您的第一张桌子。
假设您的订单行表中的产品ID,产品代码和产品名称引用了产品表中的相同值,
(并且单个产品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