
Untitled
By: a guest on
Apr 16th, 2012 | syntax:
None | size: 1.49 KB | hits: 4 | expires: Never
Need to convert DB2 query to TSQL
WITH Selected_Users(id) as (VALUES (@id1), (@id2), --etc--),
Threads(id) as (SELECT DISTINCT threadFk
FROM ThreadMembers as a
JOIN Selected_Users as b
ON b.id = a.userFk)
SELECT a.id
FROM Threads as a
WHERE NOT EXISTS (SELECT '1'
FROM ThreadMembers as b
LEFT JOIN Selected_Users as c
ON c.id = b.userFk
WHERE c.id IS NULL
AND b.threadFk = a.id)
AND NOT EXISTS (SELECT '1'
FROM Selected_Users as b
LEFT JOIN ThreadMembers as c
ON c.userFk = b.id
AND c.threadFk = a.id
WHERE c.userFk IS NULL)
WITH Selected_Users(id) AS (
SELECT Id FROM (
VALUES (@id1), (@id2), --etc--
) AS V(Id)
),
....
DECLARE @selected_Users TABLE (id int);
INSERT @selected_Users VALUES
(@id1),
(@id2),
--etc.--
; --make sure to close with semi-colon before WITH CTE
WITH Selected_Users(id) AS (
SELECT * FROM @selected_Users
),
....
WITH Selected_Users(id) AS (
SELECT @id1
UNION ALL SELECT @id2
UNION ALL SELECT @id3
--etc.--
),
....
WITH Selected_Users(id) AS
(
SELECT @id1 UNION
SELECT @id2
),
Threads(id) AS
(
SELECT DISTINCT
threadFk
FROM
ThreadMembers a
JOIN
Selected_Users b
ON
a.userFk = b.id
)
SELECT
a.Id
FROM
Threads a
WHERE
...