/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
SQL hjælp alm. master detail
Fra : Peter


Dato : 28-02-04 10:06

Hej - Håber i kan hjælpe mig.
Jeg har en master - detail database hvor jeg skal have slettet alle de
masters der ikke har nogle details.

Helt præcis. Jeg har en tabel OrdreHoved og en tabel OrdreLinie.
Nu vil jeg slette alle de hoveder der ikke har nogle linier.

De to tabeller er bundet sammen med Ordrenr.

Havde forstillet mig noget i stil med en Delete på alle de hoveder, hvor
Count (*) på linierne er lig 0. Men har lidt problemer med syntaxen på det.


Mvh
Allan



 
 
Mark S. Rasmussen (28-02-2004)
Kommentar
Fra : Mark S. Rasmussen


Dato : 28-02-04 23:13

> Helt præcis. Jeg har en tabel OrdreHoved og en tabel OrdreLinie.
> Nu vil jeg slette alle de hoveder der ikke har nogle linier.
>
> De to tabeller er bundet sammen med Ordrenr.
>
> Havde forstillet mig noget i stil med en Delete på alle de hoveder, hvor
> Count (*) på linierne er lig 0. Men har lidt problemer med syntaxen på
det.

Hvad med noget lignende:

DELETE FROM [OrdreHoved] OH WHERE (SELECT COUNT(*) FROM [OrdreLinie] OL
WHERE OL.[Ordrenr] = OH.[Ordrenr]) = 0

Det forudsætter at du bruger MsSQL / Access, såvidt jeg ved understøtter
MySQL ikke sub selects.

Mvh
Mark S. Rasmussen
--
www.improve.dk



"> Allan (29-02-2004)
Kommentar
Fra : "> Allan


Dato : 29-02-04 17:48

> Hvad med noget lignende:
>
> DELETE FROM [OrdreHoved] OH WHERE (SELECT COUNT(*) FROM [OrdreLinie] OL
> WHERE OL.[Ordrenr] = OH.[Ordrenr]) = 0
>
> Det forudsætter at du bruger MsSQL / Access, såvidt jeg ved understøtter
> MySQL ikke sub selects.

Det var en Access-basse og mange tak. Det var lige sådan jeg havde tænkt
det, kunne bare ikke få det ind i mine fingre og videre ned på tastaturet.
Takker igen.

Mvh
Allan



Kristian Damm Jensen (01-03-2004)
Kommentar
Fra : Kristian Damm Jensen


Dato : 01-03-04 08:54

Peter wrote:
> Hej - Håber i kan hjælpe mig.
> Jeg har en master - detail database hvor jeg skal have slettet alle de
> masters der ikke har nogle details.
>
> Helt præcis. Jeg har en tabel OrdreHoved og en tabel OrdreLinie.
> Nu vil jeg slette alle de hoveder der ikke har nogle linier.
>
> De to tabeller er bundet sammen med Ordrenr.
>
> Havde forstillet mig noget i stil med en Delete på alle de hoveder,
> hvor Count (*) på linierne er lig 0. Men har lidt problemer med
> syntaxen på det.

Prøv at læse på exists og not exists.


--
Kristian Damm Jensen damm (at) ofir (dot) dk
Those who desire to give up Freedom in order to gain Security, will not
have, nor do they deserve, either one. -- Thomas Jefferson


"> Allan (01-03-2004)
Kommentar
Fra : "> Allan


Dato : 01-03-04 23:59

> > Hej - Håber i kan hjælpe mig.
> > Jeg har en master - detail database hvor jeg skal have slettet alle de
> > masters der ikke har nogle details.
> >
> > Helt præcis. Jeg har en tabel OrdreHoved og en tabel OrdreLinie.
> > Nu vil jeg slette alle de hoveder der ikke har nogle linier.
> >
> > De to tabeller er bundet sammen med Ordrenr.
> >
> > Havde forstillet mig noget i stil med en Delete på alle de hoveder,
> > hvor Count (*) på linierne er lig 0. Men har lidt problemer med
> > syntaxen på det.
>
> Prøv at læse på exists og not exists.

Det har jeg hørt før det der! Er det "rigtig" SQL?

Mvh
Allan



Mark S. Rasmussen (02-03-2004)
Kommentar
Fra : Mark S. Rasmussen


Dato : 02-03-04 19:57

> > Prøv at læse på exists og not exists.
>
> Det har jeg hørt før det der! Er det "rigtig" SQL?

Ja, det er såmæn rigtig SQL. Det er sådan set det samme jeg gør, bare uden
keywordet. Samme SQL sætning kunne skrives således:

DELETE FROM [OrdreHoved] OH WHERE NOT EXISTS (SELECT * FROM [OrdreLinie] OL
WHERE OL.[Ordrenr] = OH.[Ordrenr])

Mvh
Mark S. Rasmussen
--
www.improve.dk



"> Allan (15-03-2004)
Kommentar
Fra : "> Allan


Dato : 15-03-04 00:06

> > > Prøv at læse på exists og not exists.
> >
> > Det har jeg hørt før det der! Er det "rigtig" SQL?
>
> Ja, det er såmæn rigtig SQL. Det er sådan set det samme jeg gør, bare uden
> keywordet. Samme SQL sætning kunne skrives således:
>
> DELETE FROM [OrdreHoved] OH WHERE NOT EXISTS (SELECT * FROM [OrdreLinie]
OL
> WHERE OL.[Ordrenr] = OH.[Ordrenr])

Sejt!




Kristian Damm Jensen (02-03-2004)
Kommentar
Fra : Kristian Damm Jensen


Dato : 02-03-04 07:36

>>> Hej - Håber i kan hjælpe mig.
>>> Jeg har en master - detail database hvor jeg skal have slettet alle
>>> de masters der ikke har nogle details.
>>>
>>> Helt præcis. Jeg har en tabel OrdreHoved og en tabel OrdreLinie.
>>> Nu vil jeg slette alle de hoveder der ikke har nogle linier.
>>>
>>> De to tabeller er bundet sammen med Ordrenr.
>>>
>>> Havde forstillet mig noget i stil med en Delete på alle de hoveder,
>>> hvor Count (*) på linierne er lig 0. Men har lidt problemer med
>>> syntaxen på det.
>>
>> Prøv at læse på exists og not exists.
>
> Det har jeg hørt før det der! Er det "rigtig" SQL?

Bestemt. Og har været det siden starten.

For mig er det noget af det mest grundlæggende, og mere vigtigt end "pjat"
som count, max og min.

--
Kristian Damm Jensen damm (at) ofir (dot) dk
The only substitute for good manners is quick reflexes.


Søg
Reklame
Statistik
Spørgsmål : 177500
Tips : 31968
Nyheder : 719565
Indlæg : 6408509
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste