我有csv格式的数据库,我想计算从一个站到另一个站的票价,但问题是数据库,我认为没有正确的格式来构建SQL查询,所以我们可以尝试从下面的数据库格式的SQL查询到以从versova到sakinaka的票价为例。
还有任何其他解决方案表结构,它可以友好地触发它上面的SQL查询。
答案 0 :(得分:1)
将CSV加载到System.Data.DataTable(C#)。
Create Table T_Hop
HOP_Id integer not NULL
,HOP_Name nvarchar(200)
Create Table T_Fare
Fare_Id integer not null
,Fare_Departure_HOP_Id integer not null
,Fare_Destination_HOP_Id integer not null
,Fare_Fare numeric(10, 2) not null
取第一排 foreach专栏==>添加具有id = ordinal index of column
的跃点名称for(int i=0; i < dt.Columns.Count; ++i)
{
for(int j=0; j < dt.Rows.Count; ++j)
{
double Fare = System.Convert.ToDouble(dt.Rows[j][i]);
==> insert into T_Fare(Fare_Id,Fare_Departure_HOP_Id, Fare_Destination_HOP_Id, Fare_Fare ) Values (j*dt.Columns.Count + i, i, j, Fare)
// and check that I didn't mix up i and j
}
}
查询:
SELECT Fare_Fare
WHERE Fare_Destionation_HopId = x
and Fare_Departure_Hop_Id = y