2016-08-09 28 views
-1

Ich habe eine Tabelle mit Produktdetails in jeder Zeile, wo jeder Artikel einzigartig ist.Zweite Tabelle ist Steuerbasis, die mehrere Steuern für jedes einzelne Element haben. Ich mag ergeben, die für jedes Element einreihige haben sollte und alle Steuer auf den Punkt sollte in dieser Reihe mit anderen DetailsAbfrageergebnis von mehreren Zeilen in einer Zeile?

item 
item_id name type 
1. bike vehicle 

tax 
id tax_name tax_rate item_id 
1. tax1  12  1 
2. tax2  13  1 
3. tax3  14  1 

Ergebnis sollte in Zusammenhang steht sein: eine typische Schraubbefestigung Dies ist

id name type tax_name_1 tax_rate_1 tax_name_2 tax_rate_2 tax_name_3 tax_rate_3 
1 bike vehicle tax1  12  tax2  13   tax3   14 
+0

Bitte geben Sie das Schema der Steuertabelle. – jophab

+0

Um die Spalte in Steuertabelle zu kennen, die Artikel – jophab

+0

entspricht Item-ID ist mit beiden Tabelle –

Antwort

0

Problem, versuchen Sie dies:

select 
    item.*, 
    max(case when tax.id = 1 then tax_name end) as tax_name_1, 
    max(case when tax.id = 1 then tax_rate end) as tax_rate_1, 
    max(case when tax.id = 2 then tax_name end) as tax_name_2, 
    max(case when tax.id = 2 then tax_rate end) as tax_rate_2, 
    max(case when tax.id = 3 then tax_name end) as tax_name_3, 
    max(case when tax.id = 3 then tax_rate end) as tax_rate_3 
from item 
join tax 
group by item.id 
+0

Anzahl der Steuern ist nicht fest –

+0

@AshishSinghal Wenn es dynamisch ist, hier müssen Sie dynamische SQL verwenden, um es zu tun. Und bitte füge diese Information in deine Frage ein. – Blank

0

ich denke einfach innere join wird für Sie diese Aufgabe tun

SELECT item.*, tax.taxname,tax.taxrate 
    FROM table1 
    INNER JOIN tax 
    ON item.id=tax.id;