2016-08-11 2 views
-11

Mit Tabellendaten:Wie wählt man Daten aus der folgenden Tabelle?

enter image description here

Wie das Ergebnis zu erhalten, wie: wie die unten

enter image description here

+5

einen Code enthalten, die zeigt, was Sie bisher versucht haben. –

+0

@ Pooja-G Sie können nicht feststellen, ob meine Ausgabe richtig ist oder nicht. Ich habe hier nach dieser Ausgabe gefragt. Ich habe die Ausgabe selbst und ich habe unten veröffentlicht –

Antwort

0
select category_name,parent_category_name from tbl_product p 

left join 
(
    select cp.category_code, 
     case 
      when 
       cp.parent_code = 0 then '' 
      when 
       cp.parent_code != 0 then cp.category_name 
     end as category_name, 
     cp.parent_code, isnull(ch.category_name, cp.category_name) as parent_category_name from tbl_category cp 
     left join 
     (
      select cl.category_name, cl.category_code, cl.parent_code from tbl_category cl 
     ) ch on cp.parent_code = ch.category_code 
) as cat 
on cat.category_code = p.category_code 
0

Sie zu LEFT JOIN mit sich selbst brauchen.

SELECT 
    T.categroy_name, 
    COALESCE(Parent.category_name, '') AS 'parent category' 
FROM 
    Tbl T LEFT JOIN 
    Tbl Parent ON T.parent_code = Parent.categrory_code 
1

Ihre erwartete Ausgabe verursacht Verwirrung. Ich dachte, du erwartest das folgende Format als Ausgabe.

DECLARE @CategoriesDetails TABLE (category_code INT, parent_code INT, category_name VARCHAR(100)); 

INSERT INTO @CategoriesDetails (category_code, parent_code, category_name) VALUES 
(1, 0, 'Food'), 
(2, 1, 'Bakery'), 
(3, 2, 'Snaks'); 

SELECT C1.category_name AS [Sub category], 
     ISNULL(C2.category_name, '') AS [Parent category] 
FROM @CategoriesDetails C1 
LEFT JOIN @CategoriesDetails C2 ON C2.category_code = C1.parent_code 

Ausgang:

Sub category Parent category 
-------------------------------- 
Food    
Bakery   Food 
Snaks   Bakery 
Verwandte Themen