Trädvy Permalänk
Medlem
Plats
Karlstad
Registrerad
Mar 2003

SQL inner join, sub-query?

Har en fråga angående en SQL-fråga.

Jag har genom en inner join pusslat ihop från två tabeller och visar resultaten. So far so good.

Så här ser frågan ut.

SELECT TBL1.foljesedel, TBL1.fritext, COUNT(TBL1.foljesedel) AS antal, TBL2.regnummer
FROM TBL1 INNER JOIN
TBL2 ON TBL2.kollinr = TBL1.kollinr
WHERE TBL1.ankomst=0
GROUP BY TBL1.foljesedel, TBL1.fritext, TBL2.regnummer
ORDER BY TBL1.foljesedel

Detta baseras ju å att det finns data med kollinummer i TBL1 och TBL2.
Men jag vill även ha med data från TBL1 där fritext = 'aviserad', även om det fattas kollinr från TBL2.

Går det enkelt få med nån slags sub-query där jag inkluderar detta?

K#

Trädvy Permalänk
Medlem
Plats
Helsingborg
Registrerad
Maj 2005

Kanske kan ta en outer join istället och filtrera resultat på "TBL2.regnummer IS NOT NULL OR TBL1.fritext IS 'aviserad'"?

Z87-Pro, I5 4670K@4.0 (4.2 single), Sapphire 290 TRI-X ~10% överklock, 16GB Crucial Tactical@stock, Deep Silent 1, Samsung Evo 250GB + 2x1TB 7200
Toshiba Satellite L855-10U
P5QL, E5300@3640Hz, GTX275, 4GB kingston 800MHz cl4, Threehundred, Zalman 500W

Trädvy Permalänk
Medlem
Plats
Karlstad
Registrerad
Mar 2003
Skrivet av e1m1:

Kanske kan ta en outer join istället och filtrera resultat på "TBL2.regnummer IS NOT NULL OR TBL1.fritext IS 'aviserad'"?

Ahh, perfekt. Tack!

Fick till det med FULL OUTER JOIN istället.

En fråga till appropå detta. I och med att det finns null data på dessa regnummer-rader nu, går det att fylla dessa null-rader med något custom på något vis?

K#

Trädvy Permalänk
Medlem
Plats
London / Göteborg
Registrerad
Jul 2007
Skrivet av atman:

Ahh, perfekt. Tack!

Fick till det med FULL OUTER JOIN istället.

En fråga till appropå detta. I och med att det finns null data på dessa regnummer-rader nu, går det att fylla dessa null-rader med något custom på något vis?

Du kan använda SQL-funktionen COALESCE.
Som select COALESCE(tbl2.regnr, 'Inget regnr!') as regnr

Dokumentation: https://msdn.microsoft.com/en-us/library/ms190349.aspx
(fungerar i andra rbdms)

Skrivit på telefon, skyller felstavningar och brist på grammatik på detta.

WS: Bärbar workstation, 2 * Dell U2412M
HTPC: Intel NUC, Canton GLE 496, Yamaha RV-A830, Sanyo PLV-Z700
Server: Intel Xeon E3-1240@3.4 GHz, ESXi, 16GB RAM, 8*2TB RAID-Z2 + SSD-cache
Slösurf: MacBook Air 11,6", Nokia Lumia 925, OnePlus Two
Kamera: Canon EOS 5DII + 1DIII, Canon 100/2.8 Macro, Canon 70-200/2.8L, Canon 24-70/2.8L

Trädvy Permalänk
Medlem
Plats
Karlstad
Registrerad
Mar 2003
Skrivet av zyberzero:

Du kan använda SQL-funktionen COALESCE.
Som select COALESCE(tbl2.regnr, 'Inget regnr!') as regnr

Dokumentation: https://msdn.microsoft.com/en-us/library/ms190349.aspx
(fungerar i andra rbdms)

Skrivit på telefon, skyller felstavningar och brist på grammatik på detta.

Tack!

Funka perfekt!

K#