I’d like to create a new 'Hit?' column that returns Hit if a SiteLocation has a 1 in column 'Required?' and does not have Pie-Active in column 'Product-Status'.
Here's the starting table:
| SiteAddress | Required? | Product-Status |
|---|---|---|
| 1234 something street | 1 | Cake-active |
| 1234 something street | 0 | Pie-active |
| 1234 something street | 0 | Cake-inactive |
| 1234 something street | 0 | KeyLime-active |
| 1234 something street | 0 | Vanilla Sundae-active |
| 1234 something street | 0 | Pie-inactive |
| 567 other street | 0 | Cake-active |
| 567 other street | 1 | Cake-inactive |
| 567 other street | 0 | KeyLime-inactive |
In this example, SiteLocation 567 other street would get flagged as hit since it contains at least one 1 and does not contain any Pie-active. See below for what I'm hoping to create:
| SiteAddress | Required? | Product-status | Hit? |
|---|---|---|---|
| 1234 something street | 1 | Cake-active | No Hit |
| 1234 something street | 0 | Pie-active | No Hit |
| 1234 something street | 0 | Cake-inactive | No Hit |
| 1234 something street | 0 | KeyLime-active | No Hit |
| 1234 something street | 0 | Vanilla Sundae-active | No Hit |
| 1234 something street | 0 | Pie-inactive | No Hit |
| 567 other street | 0 | Cake-active | Hit |
| 567 other street | 1 | Cake-inactive | Hit |
| 567 other street | 0 | KeyLime-inactive | Hit |
Although 1234 something street has 1 in column 'Required?', it also has Pie-active so this is an example where the condition is not satisfied.
I understand that I need to use logic similar to this:
condition1 = Required? == 1
condition2 = Product-Status != 'Pie-Active'
RelevantAddresses = distinct SiteAddresses satisfying condition 1 and condition 2
New Column: Hit? = if SiteAddress is in RelevantAddresses, Hit, otherwise No Hit
Note that SiteAddress, Required? and Product-Status are all alias names (I had to manually create them) so I believe I need to create sub queries to access these fields.
I attempted to create this query but I'm running into a bit of a wall. I have this so far:
DECLARE @Required? as bit
DECLARE @COND1 as bit
SET @COND1 = CASE WHEN @Required? = 1 THEN 1 ELSE 0 END
SELECT @Required? = (SELECT
CASE
WHEN
.... subquery ... as Required?
SET @COND2 = CASE WHEN @Product-Status != 1 THEN 1 ELSE 0 END
SELECT @Product-Status = (SELECT
CASE
WHEN
.... subquery ... as Product-Status
Thanks