2013-12-19 151 views
-2
declare @table1 table (sno int,transferbirds int,noofbirds int,numofbirds int,mortality int) 
insert into @table1 

select sno,Branch,isnull((select transferbirds from K_RT_RetailsDetails where branch in (PN.sno),0) as Totalbirds,  
isnull(select noofbirds from K_RT_WarehouseDetails where branch in (PN.sno),0) as Meatbirds, 
isnull(select noofbirds from K_RT_MasterBirdsTransferDet where frombranch in (PN.sno),0) as TransferBirds, 
isnull(select mortality from K_RT_DailyEntry where branch in (PN.sno),0)as Mortality, 
isnull(select noofbirds from K_RT_BirdsTransfer where branch in (PN.sno),0) as Tobranchtransferbirds 
from K_RT_MasterRetailStores PN  

select * from @table1 

我得到错误,'''附近语法不正确。 1号线,2号线,3号线,4号线also..please帮我连接多个表?

+0

不能使用'ISNULL(SELECT a FROM b,0)'你需要在整个子查询中放置'()'...... ISNULL((SELECT a FROM b),0)'。你开始为第一个子查询*(你有'('但不是')')* – MatBailie

+0

现在你有语法错误。修复这个问题后你再次得到错误,因为你的子查询可以返回多于一行。为什么不简单地使用K_RT_MasterRetailStores连接每个表PN – KumarHarsh

回答

0

你可以试试这个:

declare @table1 table (sno int,transferbirds int,noofbirds int,numofbirds int,mortality int) 
insert into @table1 

select sno,Branch, 
isnull((select transferbirds from K_RT_RetailsDetails where branch in (PN.sno)),0) as Totalbirds,  
isnull((select noofbirds from K_RT_WarehouseDetails where branch in (PN.sno)),0) as Meatbirds, 
isnull((select noofbirds from K_RT_MasterBirdsTransferDet where frombranch in (PN.sno)),0) as TransferBirds, 
isnull((select mortality from K_RT_DailyEntry where branch in (PN.sno)),0)as Mortality, 
isnull((select noofbirds from K_RT_BirdsTransfer where branch in (PN.sno)),0) as Tobranchtransferbirds 
from K_RT_MasterRetailStores PN  

select * from @table1 

其实内部的选择语句包含圆括号

+0

它显示子查询返回的值超过1个。 – Sambasiva

+0

然后你内部的选择是不正确的。例如,如果问题出现在表K_RT_RetailsDetails中,则表示您有两行用于同一分支。如果值相同,您可以尝试在每个内部选择中使用不同的...例如。 isnull((从...选择不同的转移鸟 – vkamayiannis