Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

Ambiguous foutmelding in MS SQL (server 7) Query

Anoniem
Elja Trum
4 antwoorden
  • Hoi,

    Ik heb een leuke SQL Query gemaakt, die de volgende foutmelding geeft. "Ambiguous Column name OrderNr"

    Ik heb een bestaande SQL Query die wel gewoon werkt uitgebreid. Dit is de oorspronkelijke SQL die wel goed werkt:

    SELECT tblOrder.OrderNr, tblOrder.KlantNr, tblOrder.Datum, tblKlant.Bedrijfsnaam, tblFeedback.fdbAfhandelingCorrect
    FROM tblOrder, tblKlant, tblFeedback
    WHERE tblOrder.OrderNr = tblFeedback.fdbOrderNr
    AND tblOrder.KlantNr = tblKlant.Klantnr
    AND tblOrder.OrderNr in
    (SELECT OrderNr
    FROM tblOrderItems
    WHERE ProductNr in
    (SELECT ProductNr
    FROM tblProduct
    WHERE PartnerNr in
    (SELECT PartnerNr
    FROM tblPartner
    WHERE Username = @Username
    )
    )
    )
    ORDER BY OrderNr DESC

    Als ik hem uitbreid met de laatste twee SELECT velden uit een andere tabel dan krijg ik de foutmelding. Dit is de SQL Query die fout gaat.

    SELECT tblOrder.OrderNr, tblOrder.KlantNr, tblOrder.Datum, tblKlant.Bedrijfsnaam, tblFeedback.fdbAfhandelingCorrect, tblOrderItems.BeginDatum, tblOrderItems.EindDatum
    FROM tblOrder, tblKlant, tblFeedback, tblOrderItems
    WHERE tblOrder.OrderNr = tblOrderItems.OrderNr
    AND tblOrder.OrderNr = tblFeedback.fdbOrderNr
    AND tblOrder.KlantNr = tblKlant.Klantnr
    AND tblOrder.OrderNr in
    (SELECT OrderNr
    FROM tblOrderItems
    WHERE ProductNr in
    (SELECT ProductNr
    FROM tblProduct
    WHERE PartnerNr in
    (SELECT PartnerNr
    FROM tblPartner
    WHERE Username = @Username
    )
    )
    )
    ORDER BY OrderNr DESC

    @Username is een variable voor gebruik in een stored procedure. Dit werkt gewoon.

    In totaal maak ik dus gebruik van 5 tabellen.
    tblOrder (Hier worden de algemene order gegevens in opgeslagen.)
    tblOrderItems (Hier worden de verschillende producten uit de winkelwagen opgeslagen)
    tblKlant (Klantgegevens)
    tblPartner (De Partnergegevens. In deze query mag alleen de partner (herkenbaar aan zijn Username) zijn eigen orders inzien.)
    tblFeedback (Hier geeft de partner feedback over zijn eigen orders. Is de order goed afgeleverd.)

    Wie weet hoe ik de query werkend kan maken?

    Alvast bedankt !
    Grtz Elja
  • Kennelijk heb je meerdere tabellen die OrderNr bevatten, vandaar de foutmelding. (Ambiguous = dubbelzinnig/meerduidig)

    Probeer
    … (SELECT OrderNr FROM tblOrderItems …
    een te vervangen door
    … (SELECT tblOrderItems.OrderNr FROM tblOrderItems …

    Overigens is de query te optimaliseren door die 'in' statements te vervangen door wat inner/outer joins, maar dat gaat me nu even te ver :wink:


    [ Dit Bericht is bewerkt door: Financial op 2002-02-14 17:11 ]
  • Bedankt voor je reactie.

    Helaas houd ik ook met deze toevoeging dezelfde foutmelding.

    Optimaliseren komt wel een keer als hij het ook daadwerkelijk doet :smile:

    Grtz Elja
  • Ook bij
    ORDER BY OrderNr DESC
    moet je even vermelden op welk OrderNr je wilt sorteren.
    Dit zal dus
    ORDER BY tblOrder.OrderNr worden (aangezien dit het enige ordernummer is in je select)
    In de goudengeit over het hoofd gezien bij m'n eerste antwoord.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.