【发布时间】:2020-04-20 08:18:03
【问题描述】:
我有大量数据可以在类型列上进行过滤。我可以使用带有自连接的子查询获取行数据并转换为列,但是由于数据量大,使用子查询会花费很多时间。我的表结构是这样的:
表 A
Id | ItemName | Type
1 | Item1 | A
2 | Item2 | A
3 | Item3 | B
4 | Item4 | B
表 B
Id | ItemDescTag | Ext
1 | ItemTag | A
4 | ItemTag | B
查询
Select ItemName,PurchaseOrdr.Quantity, PurchaseOrdr.PORate, PurchaseOrdr.CostAmount
from TableA its
left join (
select it.Id, it.Quantity,(it.CostAmount/it.Quantity)as PORate, it.CostAmount from TableA it
inner join Table B m on it.Type = convert(int ,m.Ext)
)as PurchaseOrdr on PurchaseOrdr.Id = its.Id
我需要另一种方法来摆脱这个 SUB-QUERY,因为我必须创建 10 个类似类型的 SUB-QUERY 才能获取所需的数据,并且由于数百万条记录,它会减慢速度......
【问题讨论】:
-
您能否提供示例数据和您的预期输出
-
样本输出:ibb.co/CKdvmXZ
标签: mysql sql-server tsql