2013-07-11 74 views
1
select (select code from SC_StockItem where StockItemID = a.StockItemID) 
from SC_StockItemVariantSetAttribValue a 
inner join SC_StockItemVariantSetAttribValue a2 on a.StockItemID = a2.StockItemID 
and a2.VariantSetAttribValueID = 18 
inner join SC_StockItemVariantSetAttribValue a3 on a2.StockItemID = a3.StockItemID 
and a3.VariantSetAttribValueID = 12 
where a.VariantSetAttribValueID = 26 

我希望执行上面的查询。类似于:用tsql创建动态sql?

inner join SC_StockItemVariantSetAttribValue a2 on a.StockItemID = a2.StockItemID 
    and a2.VariantSetAttribValueID = 18 

将相应地添加到从另一个查询返回的行数中。有什么方法可以在TSQL函数中添加这些行吗?

+0

没有动态SQL适合? – revoua

+0

这是用于另一个功能,因为它已经有点要求在服务器上,我宁愿如果我可以避免多次调用从C#到SQL服务器 – Jonny

+0

动态SQL的最佳信息:[动态SQL](http:///www.sommarskog.se/dynamic_sql.html)。这应该回答关于动态SQL的所有内容(少数优于SO的资源之一;-))。但是你的其他查询又是如何查看的?也许这两个查询结合起来更容易? –

回答

0

尝试添加条件join使这部分固定,不DINAMIC:

inner join SC_StockItemVariantSetAttribValue a2 on (a.StockItemID=a2.StockItemID 
and a2.VariantSetAttribValueID = 19 
and @anotherQueryCount > 0) --here you check your additional rule 

加入,如果条件为真会奏效。