It is difficult to debug your code without the data but some things you could try is: Use [AddFieldDelimiters][1] and [format][2] to get correct syntax for all your sql queries, example: feature_class = r'C:\data.gdb\features' fieldname = 'Somefield' sql = """{0} = 'NEW'""".format(arcpy.AddFieldDelimiters(datasource=feature_class, field=fieldname)) arcpy.TableSelect_analysis(in_table=feature_class, out_table='sometable', where_clause=sql) I dont think you can pass a datetime object in an sql statment, you need to format it in a way arcpy will recognize. See this question: [Using Python to select records by date field][3] Matchinig two tables/featureclasses on two fields in each table can be done by combining the fields into another field, then join on this and use Field Calculator to update. Or use a [dictionary][4] and the da.UpdateCursor: fc1 = r'C:\data.gdb\fc1' fc1_keyfield1 = 'City' fc1_keyfield2 = 'Street' fc1_field_to_update = 'Olddata' fc2 = r'C:\data.gdb\fc2' fc2_keyfield1 = 'City' fc2_keyfield2 = 'Street' fc2_field_with_newdata = 'Newdata' #Create a dictionary using the da.SearchCursor and dictionary comprehension newvaluesdict = {i[0]+i[1]:i[2] for i in arcpy.da.SearchCursor(fc2,[fc2_keyfield1,fc2_keyfield2,fc2_field_with_newdata])} with arcpy.da.UpdateCursor(fc1,[fc1_keyfield1,fc1_keyfield2,fc1_field_to_update]) as cursor: for row in cursor: if row[0]+row[1] in newvaluesdict: row[2] = newvaluesdict[row[0]+row[1]] cursor.updateRow(row) In this example if you pass CityStreet to the dictionary it will return whatever value is in the Newdata field: some_data_returned_by_da_SearchCursor = [('Paris','Street1',123),('New York','Street2',456)] d = {i[0]+i[1]:i[2] for i in some_data_returned_by_da_SearchCursor} >>d {'ParisStreet1': 123, 'New YorkStreet2': 456} >>d['ParisStreet1'] 123 [1]: http://desktop.arcgis.com/en/arcmap/10.3/analyze/arcpy-functions/addfielddelimiters.htm [2]: https://docs.python.org/3/library/stdtypes.html#str.format [3]: https://gis.stackexchange.com/questions/179656/using-python-to-select-records-by-date-field [4]: https://docs.python.org/2/tutorial/datastructures.html#dictionaries