I am using MS SQL Server 2008 using Management Studio. I am running a query(below) to extract dates and value based on the 'ticker' column from the parent table, the attribute column (child) , and dates (child) within a date range.
When I run the query, I get no values returned, but when I use primary key (param_id) from the parent or child table, I get the values returned that I want. However, I would like to use the column "ticker" in the parent table as the reference in the where clause.
I have 2 tables.
Parent Table PK - param_id - int
FK - fed_id - int (references different fed reserve ids from other table)
description - varchar(50)
ticker - varchar(50)Child Table - holds the data
(PK, FK) param_id - int
(PK, FK) attrib_id - int (references different attributes from attribute table)
(PK) [update] - datetime
value - decimal(19, 6)
SQL Query below:
SELECT [update], [value]
FROM m_econ_fred_source
JOIN s_econ_fred on m_econ_fred_source.param_id = s_econ_fred.param_id
WHERE m_econ_fred_source.ticker = 'PHILINFLEXP3M' AND
attrib_id = 7 AND
[update] BETWEEN '2014-01-01' AND '2016-03-01'
ORDER BY [update] ASC
If I do this, it works:
SELECT [update], [value]
FROM m_econ_fred_source
JOIN s_econ_fred on m_econ_fred_source.param_id = s_econ_fred.param_id
WHERE m_econ_fred_source.param_id = 2 AND
attrib_id = 7 AND
[update] BETWEEN '2014-01-01' AND '2016-03-01'
ORDER BY [update] ASC
I have also made the ticker column unique as well to see if that would help to no avail. I also created the tables using the wizard instead of create statements.
Would anyone be able to tell me what may be wrong with my query or probable causes/solutions to my problem? Thank you. I have looked everywhere for an answer to this problem. I was unable to find a problem similar to this.
param_id
filter gets the row you want but theticker
filter doesn't, then the row simply doesn't have theticker
value you are filtering on. Perhaps the value looks very similar but still different or there are some hidden characters in it. Or perhaps the value is stored in lower case and the column's collation is case-sensitive (so matching against an all-upper-case string would be the same as matching against a different value).