Pergunta : TSQL aninhado QUANDO EXISTIR

Olá! os peritos,
My QUANDO EXISTIR o laço nunca exit.
Can você ajudam-me com isto? o int

WHILE do @Child_ID do

@Parent_ID

DECLARE EXISTE (InventorytID SELETO, ParentID da tabela ONDE ParentID = @Parent_ID) o
BEGIN
SELECIONA o @Child_ID = o InventorytID da tabela ONDE ParentID = @Parent_ID
         --retornar o índice do primeiro quando o loop

         --começar o segundo loop
QUANDO EXISTIR (InventorytID SELETO, ParentID da tabela ONDE ParentID = @Child_ID) o
BEGIN
         --retornar o índice do segundo quando o loop
END
END
class= do

Resposta : TSQL aninhado QUANDO EXISTIR

Se você quer aos travers uma tabela - como um Bill da tabela de materiais, a seguir de você pode usar um tipo recursive pergunta de CTE começar em @parent e então retornar a conta completa.

Esse som gosta um pouco do que você está tentando fazer?

Como exemplo, using uma tabela do temp preferivelmente (apenas para o exemplo - você usa seu nome real da tabela)


criar a tabela #table (parentid int, inventoryID int, inventory_name varchar (100))
introduzir os valores #table (1.0, “Parent1”)
introduzir os valores #table (1.2, “Parent1Child2”)
introduzir os valores #table (2.3, “Parent2Child3”)
introduzir os valores #table (3.0, “Parent3”)

-- agora nós temos alguns dados do sampel, a pergunta recursive de CTE

; com BOM_CTE como
(InventoryID SELETO, ParentID, inventory_name
 De #Table
 ONDE ParentID = 1

 união toda

 SELECIONAR T.InventoryID, T.ParentID, T.inventory_name
 DE T #Table
 INTERNO JUNTAR-SE A BOM_CTE C em T.ParentID = C.InventoryID
 )
selecionar o parentid, inventoryid como o child_id, inventory_name de BOM_CTE
Outras soluções  
 
programming4us programming4us