在WEB应用程序中,需要查两组数据,按理说,因为是两张表,所以应该分两次查,但我又不想多次查询,所以就用了union,把两次查询结果拼到了一起,但实在是太难看了,效率低下。所以还请各位大神看看应该怎么写才合适
SELECT avg(il.UnitPrice) avgPrice,sum(il.Quantity)/12 avgNum,0,0
FROM Invoice i
LEFT JOIN InvoiceLineItem il ON i.InvoiceId=il.InvoiceId
LEFT JOIN Product p ON p.ProductId=il.ProductId
LEFT JOIN Account a ON i.AccountId=a.AccountId
WHERE datediff(m,InvoicedOn,getDate())<=12 AND p.productName='P2612430D2002F' AND a.accountName='230188'
UNION
SELECT TOP 1 isNull(c__ycjh3_1,0)/1,isNull(c__ycjh3_2,0),isNull(c__ycjh3_3,0),isNull(c__ycjh3_4,0) FROM e__jhmx e
LEFT JOIN Product p ON e.c__wlh=p.ProductId
LEFT JOIN Account a ON c__kh=a.AccountId
WHERE p.productName='P2612430D2002F' AND a.accountName='230188'
------解决方案--------------------
你有qq不,方便的话,帮你看一下怎么优化
------解决方案--------------------
把非聚集索引全部删掉,然后执行几次你的语句,再用数据库性能优化顾问搞搞...