I've got a problem regarding SQL and Python.
In my code I'm trying to search for two elements using a entry field. It's either the CommercialCode
or the ItemNumber
. This code for the ItemNumber
works perfectly fine (just the last part is important):
SQL_Query = pd.read_sql_query("Select top 1 UnitWeight, GlobalItemDescription.ItemNumber, GlobalItemDescription.Description, GlobalItemMaster_new.CommodityCode, CommercialCode, GlobalItemMaster_new.DRICode from dbo.GlobalItemDescription inner join dbo.GlobalItemMaster_new on GlobalItemDescription.ItemNumber = GlobalItemMaster_new.ItemNumber where dbo.GlobalItemDescription.ItemNumber like '%s'" % eingabe, conn)
But actually I want it like this:
SQL_Query = pd.read_sql_query("Select top 1 UnitWeight, GlobalItemDescription.ItemNumber, GlobalItemDescription.Description, GlobalItemMaster_new.CommodityCode, CommercialCode, GlobalItemMaster_new.DRICode from dbo.GlobalItemDescription inner join dbo.GlobalItemMaster_new on GlobalItemDescription.ItemNumber = GlobalItemMaster_new.ItemNumber where dbo.GlobalItemDescription.ItemNumber like '%s' OR dbo.GlobalItemMaster_new.CommercialCode like '%s'" % eingabe, eingabe2,conn)
When I execute the code above I get this error:
TypeError: not enough arguments for format string
You have to use paranthesis
, so it should be % (eingabe, eingabe2)
instead of % eingabe, eingabe2
SQL_Query = pd.read_sql_query("Select top 1 UnitWeight, GlobalItemDescription.ItemNumber, GlobalItemDescription.Description, GlobalItemMaster_new.CommodityCode, CommercialCode, GlobalItemMaster_new.DRICode from dbo.GlobalItemDescription inner join dbo.GlobalItemMaster_new on GlobalItemDescription.ItemNumber = GlobalItemMaster_new.ItemNumber where dbo.GlobalItemDescription.ItemNumber like '%s' OR dbo.GlobalItemMaster_new.CommercialCode like '%s'" % (eingabe, eingabe2),conn)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.