"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

MSSQL Join Problem

Umlüx 06.11.2017 - 15:52 1619 4
Posts

Umlüx

Huge Metal Fan
Avatar
Registered: Jun 2001
Location: Kärnten
Posts: 8962
und wieder wend ich mich hilfesuchend mit einen saudepperten problem an euch..

ich hab eine Tabelle A
Code:
num text
=== ====
1   foo  
2   bar  
3   blubb  
4   flubb
und eine Tabelle B
Code:
num code
=== ====
1   722
2   730 
3   VO  
4   852
5   766
gibts irgend einen trick um die beiden zu joinen ABER die row mit code "VO" auszulassen? er müsst also z.b. die dritte row von A mit der vierten von B joinen.

Saddamski

Addicted
Registered: Jan 2009
Location: Austria
Posts: 352
Zitat aus einem Post von Umlüx
und wieder wend ich mich hilfesuchend mit einen saudepperten problem an euch..

ich hab eine Tabelle A
Code:
num text
=== ====
1   foo  
2   bar  
3   blubb  
4   flubb
und eine Tabelle B
Code:
num code
=== ====
1   722
2   730 
3   VO  
4   852
5   766
gibts irgend einen trick um die beiden zu joinen ABER die row mit code "VO" auszulassen? er müsst also z.b. die dritte row von A mit der vierten von B joinen.

anhand von was willst du sie verjoinen? num geht ja offensichtlich nicht da du sachen weglassen willst.

kannst du anhand von row_num verjoinen?kA obs in MSQL genau so läuft - so wäre die "logik":

Code: SQL
select a.num, a.text, b.code from
(select num, text,  rownum as rows_a from a
) a,
(select num, code,  rownum as rows_b from b
where code != 'VO') b
where rows_a = rows_b;

edit@obermotz: ist rownum so dermaßen umständlich mit mssql - bist deppad :D
edit2: nochmal korrigiert damit was funktionierendes dasteht(is halt oracle und nicht mssql)
Bearbeitet von Saddamski am 06.11.2017, 16:48

Obermotz

Fünfzylindernazi
Avatar
Registered: Nov 2002
Location: OÖ/RI
Posts: 5262
Code: SQL
SELECT a.text, b.code
FROM (SELECT text, row_number() over (order by num) as row_num
    FROM A) A
JOIN
    (SELECT code,row_number() over (order by num) as row_num
    FROM B where b.code NOT IN 'VO') B
on  A.row_num=B.row_num
ORDER BY A.text, B.code

Umlüx

Huge Metal Fan
Avatar
Registered: Jun 2001
Location: Kärnten
Posts: 8962
*hirngreif* wenn mans liest ist es so logisch und eindeutig...

DANKE! :D

Obermotz

Fünfzylindernazi
Avatar
Registered: Nov 2002
Location: OÖ/RI
Posts: 5262
Ja, die MSSQL Syntax ist zum Teil etwas ungewöhnlich, ich bin auch eher ein Oracle Fanboy..
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz