Author |
Topic |
dandee266
Starting Member
2 Posts |
Posted - 2014-08-07 : 19:14:21
|
I am using the JOIN function to pull data from two tables. Table_A has all columns I need; Table_B contains only 1 column I need. The column I need data from in Table_A is called CITY_NAME and stops May 1st. The column I need in Table_B (which has the same values but begins May 2nd) is labeled CITY. In Table_A I have NULL values starting Mat 1st for CITY_NAME. In Table_B, I have NULL values for any date before May 2nd.I need to replace the NULL values in table B (May 1st and forward) with the values that are in Table BSELECTa.DATE,a.STATE,b.CITYFROM TABLE_A aLEFT JOIN TABLE_B b ON a.ID = b.IDI need to use a function similar to UNION, but TABLE_A has 10 columns and TABLE_3 has 3 columns. |
|
tkizer
Almighty SQL Goddess
38200 Posts |
Posted - 2014-08-07 : 19:45:57
|
Could you show us some sample data and expected output to make your question clear?Tara KizerSQL Server MVP since 2007http://weblogs.sqlteam.com/tarad/ |
|
|
dandee266
Starting Member
2 Posts |
Posted - 2014-08-08 : 09:55:46
|
Thank you and yes:Table_A ID DATE CITY1 4/29/14 Denver2 4/30/14 Spokane3 5/1/14 Cheyenne4 4/29/14 NULL5 4/30/14 NULL6 5/1/14 NULL7 4/29/14 NULL8 4/30/14 NULL9 5/1/14 NULL10 4/29/14 NULLTable_B ID DATE City_NAME1 4/29/14 NULL2 4/30/14 NULL3 5/1/14 NULL4 4/29/14 Denver5 4/30/14 Spokane6 5/1/14 Cheyenne7 4/29/14 Denver8 4/30/14 Spokane9 5/1/14 Cheyenne10 4/29/14 DenverResults:DATE CITY Number4/29/14 Denver 34/30/14 Spokane 45/1/14 Cheyenne 3Query to get count, but not sure how to join the CITY and CITY_NAME from the two tables:SELECTa.DATE,a.CITY,COUNT (a.ID) as NUMBERFROM TABLE_A aLEFT JOIN TABLE_B b ON a.ID = a.IDGROUP BY a.DATE, a.CITY |
|
|
Chris_Kelley
Posting Yak Master
114 Posts |
Posted - 2014-08-09 : 12:21:08
|
Okay be warned, I have only been programming for 2 weeks, and have no schooling, so......but - to replicate ------------------------------------------------------------------CREATE TABLE #TABLE_A (ID INT,DATE_ DATE,CITY CHAR(15))INSERT INTO #TABLE_A (ID,DATE_,CITY)VALUES (1, '4/29/14', 'Denver')INSERT INTO #TABLE_A (ID,DATE_,CITY)VALUES (2, '4/30/14', 'Spokane')INSERT INTO #TABLE_A (ID,DATE_,CITY)VALUES (3, '5/1/14', 'Cheyenne')INSERT INTO #TABLE_A (ID,DATE_,CITY)VALUES (4, '4/29/14', NULL)INSERT INTO #TABLE_A (ID,DATE_,CITY)VALUES (5, '4/30/14', NULL)INSERT INTO #TABLE_A (ID,DATE_,CITY)VALUES (6, '5/1/14', NULL)INSERT INTO #TABLE_A (ID,DATE_,CITY)VALUES (7, '4/29/14', NULL)INSERT INTO #TABLE_A (ID,DATE_,CITY)VALUES (8, '4/30/14', NULL)INSERT INTO #TABLE_A (ID,DATE_,CITY)VALUES (9, '5/1/14', NULL)INSERT INTO #TABLE_A (ID,DATE_,CITY)VALUES (10,'4/29/14', NULL)CREATE TABLE #TABLE_B (ID INT, DATE_ DATE, CITY_NAME CHAR(15))INSERT INTO #TABLE_B(ID,DATE_,CITY_NAME)VALUES (1, '4/29/14', NULL)INSERT INTO #TABLE_B(ID,DATE_,CITY_NAME)VALUES (2, '4/30/14', NULL)INSERT INTO #TABLE_B(ID,DATE_,CITY_NAME)VALUES (3, '5/1/14', NULL)INSERT INTO #TABLE_B(ID,DATE_,CITY_NAME)VALUES (4, '4/29/14', 'Denver')INSERT INTO #TABLE_B(ID,DATE_,CITY_NAME)VALUES (5, '4/30/14', 'Spokane')INSERT INTO #TABLE_B(ID,DATE_,CITY_NAME)VALUES (6, '5/1/14', 'Cheyenne')INSERT INTO #TABLE_B(ID,DATE_,CITY_NAME)VALUES (7, '4/29/14', 'Denver')INSERT INTO #TABLE_B(ID,DATE_,CITY_NAME)VALUES (8, '4/30/14', 'Spokane')INSERT INTO #TABLE_B(ID,DATE_,CITY_NAME)VALUES (9, '5/1/14', 'Cheyenne')INSERT INTO #TABLE_B(ID,DATE_,CITY_NAME)VALUES (10, '4/29/14', 'Denver')-----------------------------------------------------------------okay select * from #TABLE_A ORDER BY DATE_---------------------------------ID DATE_ CITY1 2014-04-29 Denver 4 2014-04-29 NULL7 2014-04-29 NULL10 2014-04-29 NULL8 2014-04-30 NULL5 2014-04-30 NULL2 2014-04-30 Spokane 3 2014-05-01 Cheyenne 6 2014-05-01 NULL9 2014-05-01 NULL------------------------------------------------------------------Bringing information in from other table if date is greater than 2014/5-------------------------------------------------------------------BEGIN TRANUPDATE #TABLE_A SET #TABLE_A.CITY = #TABLE_B.CITY_NAME FROM #TABLE_A INNER JOIN #TABLE_B ON #TABLE_A.DATE_ = #TABLE_B.DATE_ AND #TABLE_A.DATE_>='2014-05-01'----------------------------------------------------------table a if committed ------------------------------------------------ID DATE_ CITY1 2014-04-29 Denver 4 2014-04-29 NULL7 2014-04-29 NULL10 2014-04-29 NULL8 2014-04-30 NULL5 2014-04-30 NULL2 2014-04-30 Spokane 3 2014-05-01 Cheyenne 6 2014-05-01 Cheyenne 9 2014-05-01 Cheyenne Hope that helps, fun setting it up, ty tyThanks,ChrisJr Programmer |
|
|
|
|
|