Toon posts:

[sql]distinct ofzow ?

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik heb een tabel produkten waar allerlei verschillende produkten in zitten. Helaas zitten er ook enkele produkten in met dezelfde omschrijving en packingsinfo maar de rest van de eigenschappen zijn anders.
code:
1
2
3
SELECT code, omschrijving, productcode, brand, type, application, category, zichtbaar, volgorde, picture, bestand, packingsinfo, intro, body 
FROM produkten 
ORDER BY volgorde

hij pleurt er dus netjes een rijtje uit. Maar ik wil dat ie maar 1x de produkten met dezelfde (omschrijving EN packingsintro) uitpoept.
Maar als ik dit probeer met een distinct zit ie te zeuren dat de rest van de kolommen niet gebruit worden ofzowiets.

  • DRvDijk
  • Registratie: Juni 2001
  • Laatst online: 08-09 17:10
Niet DISTINCT, maar GROUP BY groepeeritem1, groepeeritem2

  • whoami
  • Registratie: December 2000
  • Laatst online: 21:42
Op maandag 29 april 2002 16:22 schreef elviver het volgende:
Niet DISTINCT, maar GROUP BY groepeeritem1, groepeeritem2
Dit draait uiteindelijk op hetzelfde uit volgens mij.
Als je een GROUP BY gebruikt, moet je alle kolommen die geen aggregate functions zijn in de GROUP BY list zetten denk ik. Dus, kan je ook maar in uw select 2 kolommen zetten.
Als je een DISTINCT gebruikt, kan je het ook oplossen door slechts de 2 kolommen in uw select-clause te zetten.

https://fgheysels.github.io/


Verwijderd

Topicstarter
ik had deze query om volledig te zijn:
code:
1
2
3
4
5
SELECT     code, omschrijving, productcode, brand, type, application, category, zichtbaar, volgorde, picture, bestand, packingsinfo, intro, body
FROM       shop_product_en
WHERE     (category = '75W6R4A6F76C5ULJ050B') AND (zichtbaar = 'J')
ORDER BY volgorde
GROUP BY packingsinfo

ik kreeg deze vout: Error in ORDER BY clause.
Unable to parse query text.

Verwijderd

Topicstarter
Op maandag 29 april 2002 16:26 schreef whoami het volgende:

[..]

Dit draait uiteindelijk op hetzelfde uit volgens mij.
Als je een GROUP BY gebruikt, moet je alle kolommen die geen aggregate functions zijn in de GROUP BY list zetten denk ik. Dus, kan je ook maar in uw select 2 kolommen zetten.
Als je een DISTINCT gebruikt, kan je het ook oplossen door slechts de 2 kolommen in uw select-clause te zetten.
helaas heb ik al die sjit items allemaal nodig

  • DRvDijk
  • Registratie: Juni 2001
  • Laatst online: 08-09 17:10
Maar wat ie zegt.. Dan krijg ie een error omdat ie nix kan met de rest van de kolommen..

Ik kan wel een distinct lijstje producten opvragen samen met de prijs... Maar als er verschillende prijzen zijn voor twee producten met dezelfde naam, en ik heb een distinct naam opgevraagd, kan mysql er weinig mee.. Die doet nix met die tweede distinct.. Met de group by statement werkt het wel, hetzij dat je inderdaad veel meer moet ingeven in je query

  • whoami
  • Registratie: December 2000
  • Laatst online: 21:42
ORDER BY moet altijd de laatste clausule zijn.

Als je al die items nodig hebt, en je wilt maar 1x de items tonen die dezelfde naam/packingsinfo hebben, wat denk je dan wel van andere waarden in uw lijst te zetten voor die producten?

https://fgheysels.github.io/


Verwijderd

Topicstarter
Op maandag 29 april 2002 16:30 schreef elviver het volgende:
Maar wat ie zegt.. Dan krijg ie een error omdat ie nix kan met de rest van de kolommen..

Ik kan wel een distinct lijstje producten opvragen samen met de prijs... Maar als er verschillende prijzen zijn voor twee producten met dezelfde naam, en ik heb een distinct naam opgevraagd, kan mysql er weinig mee.. Die doet nix met die tweede distinct.. Met de group by statement werkt het wel, hetzij dat je inderdaad veel meer moet ingeven in je query
dus als je mijn kant en klare query zou moeten omvormen zou je .... moeten doen
en komt ie er zo uit te zien .....

vul in op de stippellijn :o

gheintje maar kun je me een beetje op weg helpen ?

  • whoami
  • Registratie: December 2000
  • Laatst online: 21:42
Op maandag 29 april 2002 16:32 schreef Zoepnek het volgende:

[..]

dus als je mijn kant en klare query zou moeten omvormen zou je .... moeten doen
en komt ie er zo uit te zien .....

vul in op de stippellijn :o

gheintje maar kun je me een beetje op weg helpen ?
Ik denk dat je er beter een manual kunt bijpakken. En bekijk de secties eens over DISTINCT, GROUP BY.

https://fgheysels.github.io/


Verwijderd

Topicstarter
Op maandag 29 april 2002 16:30 schreef whoami het volgende:
ORDER BY moet altijd de laatste clausule zijn.

Als je al die items nodig hebt, en je wilt maar 1x de items tonen die dezelfde naam/packingsinfo hebben, wat denk je dan wel van andere waarden in uw lijst te zetten voor die producten?
ik denk... dat dat niet zal gaan you see ik maak de query niet hij wordt opgebouwt in asp uit info die de klant invoert

  • whoami
  • Registratie: December 2000
  • Laatst online: 21:42
Op maandag 29 april 2002 16:35 schreef Zoepnek het volgende:

[..]

ik denk... dat dat niet zal gaan you see ik maak de query niet hij wordt opgebouwt in asp uit info die de klant invoert
Wat bedoel je dat er niet zal gaan? Die ORDER BY als laatste zetten of dat ander?

Indien dat ander: doe gewoon een select zonder group by of distinct en als je een item tegenkomt waarvan het vorige item dezelfde naam/packingsinfo heeft, print je gewoon de naam/packingsinfo niet af.

https://fgheysels.github.io/


  • DRvDijk
  • Registratie: Juni 2001
  • Laatst online: 08-09 17:10
SELECT code, omschrijving, productcode, brand, type, application, category, zichtbaar, volgorde, picture, bestand, packingsinfo, intro, body
FROM produkten
ORDER BY volgorde, omschrijving, packingsinfo

zoiets?

Verwijderd

Topicstarter
Op maandag 29 april 2002 16:36 schreef whoami het volgende:

[..]

Wat bedoel je dat er niet zal gaan? Die ORDER BY als laatste zetten of dat ander?

Indien dat ander: doe gewoon een select zonder group by of distinct en als je een item tegenkomt waarvan het vorige item dezelfde naam/packingsinfo heeft, print je gewoon de naam/packingsinfo niet af.
had ik ook al aan ged8 ja maar ze worden georderd op volgorde en dat betekend dat ze niet altijd bij elkaar komen te staan.

ik d8 dat er een simpele manier was om dit met SQL op te lossen maar als dat niet kan dan prog ik wel effe wat :D

  • whoami
  • Registratie: December 2000
  • Laatst online: 21:42
Op maandag 29 april 2002 16:39 schreef Zoepnek het volgende:

[..]

had ik ook al aan ged8 ja maar ze worden georderd op volgorde en dat betekend dat ze niet altijd bij elkaar komen te staan.
Ik snap je niet hoor.
Al ff in gedachten wat het resultaat dan ging zijn? Je wilt producten met dezelfde naam slechts 1x tonen, maar de andere gegevens van dat product moeten wel in de lijst voorkomen? :?

https://fgheysels.github.io/


Verwijderd

Topicstarter
ik zal een simpel voorbeeld geven:
code:
1
2
3
4
5
6
7
8
id  |  intro  |  packingsdinges  |  volgorde  |  naam  |
--------------------------------------------------------
0   | blaaa   |  50       |  1     |  henk  |
1   | blaaa   |  50       |  4     |  ed    |
2   | blaaa   |  40       |  5     |  sjon  |
3   | test    |  50       |  2     |  frans |
4   | blaaa   |  50       |  3     |  harry |
5   | blaaa   |  20       |  4     |  ed    |

er moet nu dus dit uit komen:
code:
1
2
3
4
5
6
id  |  intro  |  packingsdinges  |  volgorde  |  naam  |
--------------------------------------------------------
0   | blaaa   |  50       |  1     |  henk  |
2   | blaaa   |  40       |  5     |  sjon  |
3   | test    |  50       |  2     |  frans |
5   | blaaa   |  20       |  4     |  ed    |

snappie m ?


edit:
uitgebreid met een regel om het probleem met de 2 velden weer te geven

  • DRvDijk
  • Registratie: Juni 2001
  • Laatst online: 08-09 17:10
SELECT id, intro, MAX(packingsdinges), volgorde, naam FROM TABLE GROUP BY intro, packingsdinges ORDER BY id;

Verwijderd

Topicstarter
Op maandag 29 april 2002 16:54 schreef elviver het volgende:
SELECT id, intro, MAX(packingsdinges), volgorde, naam FROM TABLE GROUP BY intro, packingsdinges ORDER BY id;
..... nope je snapt t niet denk ik :

Ik moet gewoon een stapel records terugkrijgen waarvan de combinatie packingsdinges-intro niet hetzelfde is.

De query moet dus de eerste combinatie van packingszooi-intro weergeven en de rest van de records die dezelfde combinatie packingszooi-intro hebben moet ie over slaan.

  • Sjnirk
  • Registratie: Maart 2001
  • Laatst online: 27-03-2025

Sjnirk

Hie vrieve

code:
1
2
3
4
Select Bla, bla, bla
from yakediesjmakedie
where bla = (Select distinct bla
         from yakediesjmakedie)

zoiets?

p.s. vrijdag (B) en sumo :+

Bikkelen gebeurt pas na 2:00


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

0 | blaaa | 50 | 1 | henk |
1 | blaaa | 50 | 4 | ed |
Hoe weet de computer nu welke je wilt hebben??? Jij neem t gezellig degene met ID=0, maar wat is de logica derachter die je dus in je query gaat verwerken.. ?
Pagina: 1