2

This does not work in SQL Server:

SELECT ID, SQNCNO
FROM JUID AS MID
WHERE 
     (ID, SQNCNO) IN (SELECT NM.ID, NM.SQNCNO
                      FROM JUNM AS NM
                      WHERE (LAST_NAME LIKE 'TESTCASE%')) 
ORDER BY ID, SQNCNO

It works in DB2 and Oracle. The problem is WHERE (ID, SQNCNO). Can anyone tell me how I can make this SQL work in SQL Server?

marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459
user3586521
  • 63
  • 1
  • 2
  • 5

2 Answers2

2

Exists is created for this manner

SELECT ID, SQNCNO
FROM JUID AS MID
WHERE Exists(SELECT 1 FROM JUNM AS NM
                      WHERE 
                          NM.ID = MID.ID 
                          and NM.SQNCNO = MID.SQNCNO 
                          and (LAST_NAME LIKE 'TESTCASE%')) 
ORDER BY ID, SQNCNO
Reza
  • 18,865
  • 13
  • 88
  • 163
-1

In SQL Server, you have to make two subqueries

SELECT ID, SQNCNO
  FROM JUID AS MID
  WHERE (ID IN (SELECT NM.ID
                   FROM JUNM AS NM
                   WHERE (LAST_NAME LIKE 'TESTCASE%')) 
OR -- AND?
SQNCNO IN (SELECT NM.SQNCNO
                   FROM JUNM AS NM
                   WHERE (LAST_NAME LIKE 'TESTCASE%')) 
  ORDER BY ID, SQNCNO
Ortiga
  • 8,455
  • 5
  • 42
  • 71