Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Apr 16th, 2012  |  syntax: None  |  size: 1.49 KB  |  hits: 4  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Need to convert DB2 query to TSQL
  2. WITH Selected_Users(id) as (VALUES (@id1), (@id2), --etc--),
  3.      Threads(id) as (SELECT DISTINCT threadFk
  4.                      FROM ThreadMembers as a
  5.                      JOIN Selected_Users as b
  6.                      ON b.id = a.userFk)
  7. SELECT a.id
  8. FROM Threads as a
  9. WHERE NOT EXISTS (SELECT '1'
  10.                   FROM ThreadMembers as b
  11.                   LEFT JOIN Selected_Users as c
  12.                   ON c.id = b.userFk
  13.                   WHERE c.id IS NULL
  14.                   AND b.threadFk = a.id)
  15. AND NOT EXISTS (SELECT '1'
  16.                 FROM Selected_Users as b
  17.                 LEFT JOIN ThreadMembers as c
  18.                 ON c.userFk = b.id
  19.                 AND c.threadFk = a.id
  20.                 WHERE c.userFk IS NULL)
  21.        
  22. WITH Selected_Users(id) AS (
  23.      SELECT Id FROM (
  24.         VALUES (@id1), (@id2), --etc--
  25.      ) AS V(Id)
  26. ),
  27. ....
  28.        
  29. DECLARE @selected_Users TABLE (id int);
  30. INSERT @selected_Users VALUES
  31.  (@id1),
  32.  (@id2),
  33.  --etc.--
  34.  ; --make sure to close with semi-colon before WITH CTE
  35.        
  36. WITH Selected_Users(id) AS (
  37.     SELECT * FROM @selected_Users
  38. ),
  39. ....
  40.        
  41. WITH Selected_Users(id) AS (
  42.    SELECT @id1
  43.    UNION ALL SELECT @id2
  44.    UNION ALL SELECT @id3
  45.    --etc.--
  46. ),
  47. ....
  48.        
  49. WITH Selected_Users(id) AS
  50. (
  51.     SELECT @id1 UNION
  52.     SELECT @id2
  53. ),
  54. Threads(id) AS
  55. (
  56.     SELECT DISTINCT
  57.         threadFk
  58.     FROM
  59.         ThreadMembers a
  60.     JOIN
  61.         Selected_Users b
  62.         ON
  63.         a.userFk = b.id
  64.  )
  65.  SELECT
  66.      a.Id
  67.  FROM
  68.      Threads a
  69.  WHERE
  70.  ...