June 29, 2017 at 10:07 pm
Hi,
when I have 1 item which have multiple codes some codes have status check, some don't.
Table 1
Item Code
Item1 code1
Item1 code2
item2 code3
Item2 code4
Table 2
Code Status
Code1 1
Code2 0
code3 0
code4 0
One Item can have multiple codes,
How can I write a SQL statement to select the item that have none of the code status mark as 1.
select result should be:
Item 2 code 3 0
Item2 code4 0
Please advise.
Thanks,
Ddee
June 30, 2017 at 2:27 am
CREATE TABLE #Table1 (Item VARCHAR(5), Code VARCHAR(5))
INSERT INTO #Table1 (Item, Code) VALUES
('Item1', 'code1'),
('Item1', 'code2'),
('item2', 'code3'),
('Item2', 'code4')
CREATE TABLE #Table2 (Code VARCHAR(5), [Status] TINYINT)
INSERT INTO #Table2 (Code, [Status]) VALUES
('Code1', 1),
('Code2', 0),
('code3', 0),
('code4', 0)
-- this query returns Items which have a [Status] = 1 in #Table2
SELECT ti1.Item
FROM #Table1 ti1
INNER JOIN #Table2 ti2
ON ti1.Code = ti2.Code
WHERE ti2.[Status] = 1
-- So use it in a NOT EXISTS, like this:
SELECT t1.*
FROM #Table1 t1
WHERE NOT EXISTS (
SELECT 1
FROM #Table1 ti1
INNER JOIN #Table2 ti2
ON ti1.Code = ti2.Code
WHERE ti2.[Status] = 1
AND ti1.Item = t1.Item
)
For fast, accurate and documented assistance in answering your questions, please read this article.
Understanding and using APPLY, (I) and (II) Paul White
Hidden RBAR: Triangular Joins / The "Numbers" or "Tally" Table: What it is and how it replaces a loop Jeff Moden
Viewing 2 posts - 1 through 1 (of 1 total)
You must be logged in to reply to this topic. Login to reply
This website stores cookies on your computer.
These cookies are used to improve your website experience and provide more personalized services to you, both on this website and through other media.
To find out more about the cookies we use, see our Privacy Policy