【发布时间】:2019-08-20 00:59:49
【问题描述】:
我已经尝试解决这个问题大约一个星期了。我真的需要别人的帮助。
我将获得两个或三个“LN”,我必须检查它们在“FODEX”列中是否具有相同的编号。如果它们具有相同的 FODEX,则可能只需添加一列并打印一列,否则打印零。
我写了这个查询:
SELECT MSTR.LN , LINK.SEQNO, MMA5_MSTR.FODEX, MMA5_MSTR.DES, MSTR.SL
FROM (((MSTR INNER JOIN LINK
ON MSTR.SEQNO = LINK.SEQNO) INNER JOIN MMA5_MSTR
ON LINK.FODEX = MMA5_MSTR.FODEX))
WHERE (MSTR.LN LIKE "%NOVOLLL%" OR MSTR.LN LIKE "%TRES%" OR MSTR.LN LIKE
"%ENBREL%")
GROUP BY SEQNO, SL
ORDER BY FODEX;
这是我得到的输出,
LN || SEQNO || FODEX || DES || SL
----------------------------------------------------------------
TRES || 71842 || 13 || ANTIDIABE || 12
NOVOLLL || 44340 || 13 || ANTIDIABE || 12
NOVOLLL || 44340 || 1059 || ANTIDIABE || 55
TRES || 71842 || 1059 || ANTIDIABE || 55
TRES || 71842 || 1317 || ANTIDIABE || 66
NOVOLLL || 44340 || 1317 || ANTIDIAB || 66
ENBREL || 40869 || 1722 || TNe || 90
ENBREL || 40869 || 29359 || IMMUNOSUPP || 103
这是我想要得到的输出,
LN || SEQNO || FODEX || DES || SL || Y/N
----------------------------------------------------------------
TRES || 71842 || 13 || ANTIDIABE || 12 || 1
NOVOLLL || 44340 || 13 || ANTIDIABE || 12 || 1
NOVOLLL || 44340 || 1059 || ANTIDIABE || 55 || 1
TRES || 71842 || 1059 || ANTIDIABE || 55 || 1
TRES || 71842 || 1317 || ANTIDIABE || 66 || 1
NOVOLLL || 44340 || 1317 || ANTIDIAB || 66 || 1
ENBREL || 40869 || 1722 || TNe || 90 || 0
ENBREL || 40869 || 29359 || IMMUNOSUPP || 103|| 0
【问题讨论】:
-
额外列的预期结果是什么?您可以将其添加到示例中吗?
-
我确实将它添加到示例中。
-
@YousefSameer。 . .您的聚合查询没有意义。您在
SELECT中有未聚合的列——即SELECT列和GROUP BY列不一致。
标签: mysql sql mysql-workbench dbvisualizer