1

Herro 朋友们,我有一个前一段时间有人提出的问题。我需要将 Alarmtzu 添加到选择中,并添加两个额外的连接。(请参阅下面的第二个 sql)由于查询非常复杂,我很难找到适合 SQL 语法的正确方法。

我也没有可用的数据库计划,因为这是一个非常古老的数据库。

SELECT r.refnam, 
       t.tstring,
       rc.cnt namecounter
FROM refdev r
INNER JOIN (SELECT refnam, 
                   COUNT(*) cnt
              FROM refdev rc
          GROUP BY refnam
           ) rc 
        ON rc.refnam = r.refnam
LEFT OUTER JOIN texte t
             ON r.sigtnr = t.textnr
WHERE rc.cnt = 3
ORDER BY r.refnam

SELECT d.alarmzu
FROM devtzu d, OUTER refdev_DEF RD
WHERE D.zustnr = R.zustnr
AND D.dvtypnr = RD.dvtypnr AND R.refnam = RD.refnam
4

1 回答 1

0

不确定它是否正确,因为它们没有数据库模式。但是我查看表格的方式可能是解决方案。如果我错了,请纠正我。

SELECT r.refnam, 
       t.tstring,
       rc.cnt namecounter,
       d.alarmzu
FROM refdev r
INNER JOIN (SELECT refnam, 
                   COUNT(*) cnt
              FROM refdev rc
          GROUP BY refnam
           ) rc 
        ON rc.refnam = r.refnam
LEFT OUTER JOIN texte t
             ON r.sigtnr = t.textnr
JOIN devtzu d ON d.zustnr = r.zustnr
LEFT OUTER JOIN refdev_DEF RD ON d.dvtypnr = RD.dvtypnr
WHERE r.refnam = RD.refnam
AND rc.cnt = 3
ORDER BY r.refnam
于 2013-10-29T12:49:03.923 回答