[MSSQL] Join / query probleem

Pagina: 1
Acties:

  • Altaphista
  • Registratie: Juli 2001
  • Laatst online: 22-08 12:42

Altaphista

1. check manual, 2. ask

Topicstarter
ik wil via een query alles selecteren uit Tabel1, dus ook waar Tabel1.medewerkerid de waarde 'NULL' heeft (deze kan null zijn). Laatstgenoemde krijg ik alleen niet voor elkaar. Iemand een idee hoe dit moet? (kheb al met outer join's zitten prutsen, de volgorde omgedraaid etc, maar het lukt me niet)

code:
1
2
SELECT *, medewerker.* FROM Tabel1
LEFT OUTER JOIN medewerker on medewerker.medewerkerid=tabel1.medewerkerid


edit: hmm ik zie net een interessante topic ([rml][ SQL] Enkele vragen[/rml]), niet gevonden via de search. Ik ga hier ook ff kijken. Tips blijven welkom :)

[ Voor 20% gewijzigd door Altaphista op 09-04-2003 17:47 ]

Je gaat het pas zien als je het doorhebt.


Verwijderd

code:
1
2
SELECT *, medewerker.* FROM Tabel1
LEFT JOIN medewerker on medewerker.medewerkerid=tabel1.medewerkerid

should do it.

  • EfBe
  • Registratie: Januari 2000
  • Niet online
Altaphista schreef op 09 april 2003 @ 17:45:
ik wil via een query alles selecteren uit Tabel1, dus ook waar Tabel1.medewerkerid de waarde 'NULL' heeft (deze kan null zijn). Laatstgenoemde krijg ik alleen niet voor elkaar. Iemand een idee hoe dit moet? (kheb al met outer join's zitten prutsen, de volgorde omgedraaid etc, maar het lukt me niet)

code:
1
2
SELECT *, medewerker.* FROM Tabel1
LEFT OUTER JOIN medewerker on medewerker.medewerkerid=tabel1.medewerkerid
Die 1e '*' selecteert al alle columns, dus ook medewerker.*

'OUTER' kun je weg laten, LEFT / RIGHT is altijd OUTER join. Volgens mij moet die query gewoon werken. Ik zou hem wel zo opschrijven:

[code[
SELECT Table1.*, medewerker.* FROM Table1
LEFT JOIN Medewerker on
Table1.medewerkerid=Medewerker.medewerkerid
[/code]

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


  • Altaphista
  • Registratie: Juli 2001
  • Laatst online: 22-08 12:42

Altaphista

1. check manual, 2. ask

Topicstarter
Verwijderd schreef op 09 April 2003 @ 18:23:
code:
1
2
SELECT *, medewerker.* FROM Tabel1
LEFT JOIN medewerker on medewerker.medewerkerid=tabel1.medewerkerid

should do it.
thnx, k ik ga het proberen
EfBe schreef op 09 april 2003 @ 19:16:
[...]

Die 1e '*' selecteert al alle columns, dus ook medewerker.*

'OUTER' kun je weg laten, LEFT / RIGHT is altijd OUTER join. Volgens mij moet die query gewoon werken.
Is voor de duidelijkheid, omdat je ook inner joins hebt (waar het wel weer uitmaakt of de waarden die geselecteerd worden bestaan)

Je gaat het pas zien als je het doorhebt.


  • Altaphista
  • Registratie: Juli 2001
  • Laatst online: 22-08 12:42

Altaphista

1. check manual, 2. ask

Topicstarter
Verwijderd schreef op 09 April 2003 @ 18:23:
code:
1
2
SELECT *, medewerker.* FROM Tabel1
LEFT JOIN medewerker on medewerker.medewerkerid=tabel1.medewerkerid

should do it.
Dit werkt dus niet , de query geeft de volgende foutmelding als ik het uitvoer via scriptaanroep (OLE DB conn.):
code:
1
2
3
Error Type:
Microsoft Cursor Engine (0x80004005)
Data provider or other service returned an E_FAIL status.

De foutmelding krijg ik weer niet als ik de query uitvoer via MSSQL Server Enterprise Manager...
.

Je gaat het pas zien als je het doorhebt.


  • momania
  • Registratie: Mei 2000
  • Laatst online: 17:50

momania

iPhone 30! Bam!

Probeer eens gewoon alleen * ipv *, medewerker.*
* selecteerd nml. al alles voor je, dus alle tabbellen die je raakt.
Anders zou je tabel1.*, medewerker.* moeten doen.

Neem je whisky mee, is het te weinig... *zucht*


  • Altaphista
  • Registratie: Juli 2001
  • Laatst online: 22-08 12:42

Altaphista

1. check manual, 2. ask

Topicstarter
momania schreef op 10 April 2003 @ 10:36:
Probeer eens gewoon alleen * ipv *, medewerker.*
* selecteerd nml. al alles voor je, dus alle tabbellen die je raakt.
Anders zou je tabel1.*, medewerker.* moeten doen.
had ik al gedaan, maar helpt geen flikker.
Ik vermoed dat het aan een driver van de server ligt. De query wordt nl wel goed uitgevoerd als ik het via Enterprise manager of Query Analyzer probeer, maar via de script niet.... :(
is dit een bekend probleem?

Je gaat het pas zien als je het doorhebt.


Verwijderd

Altaphista schreef op 10 April 2003 @ 09:29:
[...]


Dit werkt dus niet
De foutmelding krijg ik weer niet als ik de query uitvoer via MSSQL Server Enterprise Manager...
.
Dan werkt het dus wel maar in de query analyzer heb jij een andere connectie lopen dan in de Enterprise Manager. Kortom bij elke table standaard dbo. ervoor en het zou weer moeten werken.

  • momania
  • Registratie: Mei 2000
  • Laatst online: 17:50

momania

iPhone 30! Bam!

Altaphista schreef op 10 April 2003 @ 10:40:
[...]


had ik al gedaan, maar helpt geen flikker.
Ik vermoed dat het aan een driver van de server ligt. De query wordt nl wel goed uitgevoerd als ik het via Enterprise manager of Query Analyzer probeer, maar via de script niet.... :(
is dit een bekend probleem?
Kan zijn jah, dat de huidige driver die je gebruikt niet aansluit op de MS SQL versie die je hebt.

Neem je whisky mee, is het te weinig... *zucht*


Verwijderd

Altaphista schreef op 10 April 2003 @ 09:29:
[...]
(OLE DB conn.):
code:
1
2
3
Error Type:
Microsoft Cursor Engine (0x80004005)
Data provider or other service returned an E_FAIL status.

.
Dit zegt meneer Technet van jouw foutmelding

SYMPTOMS
========

The following error message appears when you try to use the BobsVid.cub sample
cube file:

E_FAIL ("An unexpected internal error has occurred")

BobsVid.cub was distributed with the Microsoft Data Access SDK, version 2.0.

CAUSE
=====

BobsVid.cub was created with a beta version of Microsoft OLAP services, and it
is incompatible with the released version of that product.

RESOLUTION
==========

Obtain or create a different cube file using the released version of Microsoft
OLAP Services contained in SQL Server 7.0.


Kortom ik blijf een connectieinstellingsprobleem vermoeden waarbij de nadruk ligt op de userrights. Meestal wil dbo. dan wel helpen en anders je connectie instellingen in de Query Analyzer aanpassen.

[ Voor 12% gewijzigd door Verwijderd op 10-04-2003 10:46 . Reden: Toevoeging want technet zoekt de fout op verkeerde plaats ]


  • EfBe
  • Registratie: Januari 2000
  • Niet online
Altaphista schreef op 09 April 2003 @ 23:46:
[...]
Is voor de duidelijkheid, omdat je ook inner joins hebt (waar het wel weer uitmaakt of de waarden die geselecteerd worden bestaan)
Nee dit is totale onzin.

De resultset select list, selecteert columns uit de totale columnset opgeleverd door de FROM clause. INNER JOIN's leveren minder ROWS op, niet minder columns. Die 1e '*' geeft aan dat je al alle COLUMNS uit de from clause wilt hebben. Daarachter nog eens medewerker.* neerzetten zorgt ervoor dat je nog eens die columns in je resultset meeneemt. En die had je al.

Die query die ik neerzette, werkt die? Indien niet, dan is er iets totaal anders aan de hand. Die error die je post duidt op een brakke install van sqlserver, al een service pack gedraaid? Werk je vanuit query analyser? Werkt het daar wel? Klopt het execution plan met wat je denkt dat zou moeten gebeuren?

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


  • Altaphista
  • Registratie: Juli 2001
  • Laatst online: 22-08 12:42

Altaphista

1. check manual, 2. ask

Topicstarter
EfBe schreef op 10 April 2003 @ 10:50:
[...]


Die query die ik neerzette, werkt die? Indien niet, dan is er iets totaal anders aan de hand. Die error die je post duidt op een brakke install van sqlserver, al een service pack gedraaid? Werk je vanuit query analyser? Werkt het daar wel? Klopt het execution plan met wat je denkt dat zou moeten gebeuren?
De query werkt, als zijnde de query. (en het resultaat komt wel overeen met wat ik wil, dus thnx :) )
De query werkt niet als ik m uitvoer via de asp script, wat dus duidt op geen rechten, niet geinstalleerde driver of onderdeel oid.
Ik ga ff service packs proberen.

Je gaat het pas zien als je het doorhebt.

Pagina: 1