Toon posts:

(Access/SQL)SELECTs met aparte WHERE

Pagina: 1
Acties:

Verwijderd

Topicstarter
Als je alles naast elkaar zet in de SELECT dan gaan ze allemaal voldoen aan 1 en dezelfde WHERE en AND!
Ik wil graag meerdere berekeningen(COUNT) doen in 1 select (Want dan staat de uitvoer naast elkaar ipv met UNION onder elkaar!)

Maar ik wil dat elke kolom alle -1 in zijn eigen kolom telt! Maar nu telt elke kolom de -1 van de eerste kolom[Gereed]! Kan ik "WHERE ((Testformulier.Gereed)=-1)" variabel maken of zoiets dergelijks?

Code:
SELECT COUNT ([Gereed])AS Aantal_Gereed,
COUNT ([GTI uitgev])AS Aantal_GTI_Uitgevoerd,
COUNT ([Opdrgvr acc])AS Aantal_Opdrachtgever_Accoord,
COUNT ([Klant acc]) AS Aantal_Klant_Accoord
FROM Testformulier
WHERE ((Testformulier.Gereed)=-1);

Ik heb ook al zitten proberen met de UNION ALL en dan elke kolom zijn eigen kolom op -1 tellen, maar dan werden de waarde in de uitvoer allemaal onder elkaar gezet ipv naast elkaar!

Kan iemand mij helpen??

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

Sjnirk

Hie vrieve

Kun je die query niet gewoon gebruiken, en dan met movenext en zon dingen allemaal ze in VBA achterelkaar zetten?, anders weet ik het ook niet heb door het meeste sql op school heengeslapen

Bikkelen gebeurt pas na 2:00


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 20:58

Janoz

Moderator Devschuur®

!litemod

Ik denk dat datgene wat jij nu wilt doen niet mogelijk is met count. Mischien zou je met sum icm een if kunnen werken. Je kutn niet per kolom met een where werken, omdat een where op het hele record slaat.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Kan niet in 1 query.

Dus: voor elke count een eigen query maken.
Vervolgens 1 verzamelquery maken waarin je het Totaalveld uit je subqueries selecteert.

Verwijderd

HEE, je hebt 2 x hetzelfde topic openstaan.
Doe 'es niet!

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Al gemeld in SM.
Welke waarde hebben de velden als er niet -1 in staat?

Verwijderd

Topicstarter
Sorry,voor het openen van een nieuwe topic!
Maar ik dacht dat die andere niet duidelijk genoeg was!
Dus dat jullie Experts er niet op zouden reageren!
________________________________________________________

De kolom bevat Ja/Nee Vinkjes in Access2000!
Dus het heeft de waarde -1 (Aangekruisd) en 0 (Niet Aangekruisd)! Aangezien het met COUNT niet lukte heb ik het nu opgelost met SUM (Door een tip van JANOZ) maar dan telt hij -1 en 0 op dus wordt het bijv. -1 + -1 + 0 + -1 = -3!

Zodoende wordt het:

Code:
SELECT
COUNT([Testformulier]),
SUM([Gereed])*-1,
SUM([GTI uitgev])*-1,
SUM([Opdrgvr acc])*-1,
SUM([Klant acc])*-1
FROM Testformulier
WHERE (([Testformulier].[Id]) Like [Van welk Nr?]);

Alleen vroeg ik me nog af!
Hoe kan je het antwoord op de WHERE eruit halen zodat je dat ook in het rapport kan genereren??

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Hierbij hoe je dat zou kunnen aanpakken.
Gebruik trouwens graag de [ code] tags (zoals hieronder)
code:
1
2
3
4
5
6
7
8
9
SELECT Id
    ,COUNT(Testformulier)  [** is dit een kolom?? **]
    ,-SUM(Gereed)
    ,-SUM(GTI uitgev)
    ,-SUM(Opdrgvr acc)
    ,-SUM(Klant acc)
FROM   Testformulier
WHERE  Id BETWEEN [van] AND [tot]
GROUP BY Id;

Verwijderd

Topicstarter
Ja, dat gaat nu goed!! :)

Maar kan ik in DEZELFDE qeury een UPDATE of een SET WHERE doen! Zo Ja, hoe doe ik dat dan?

Want ik krijg constant Syntax Error's! :(

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Wat wil je bereiken? En hoezo dezelfde query?
Dit is een select, daar kan je geen update mee doen!

Verwijderd

Moeten al die uitroeptekens achter elke zin? :)

En nee, je kan idd niet selects en update's in 1 query stoppen. Als ik jouw eerste query zie lijkt het me toch dat je wel wat SQL kent, maar met zo een vraag begin ik toch weer erg te twijfelen....

Een count() updaten vind ik sowieso al erg knap.

Verwijderd

Topicstarter
Ja, Sorry van die uitroeptekens!
Dat is een afwijking van mij. :?

Ik dacht al dat je een UPDATE niet in dezelfde query kan doen,maar ik dacht wie niet waagt wie niet wint! :)

Ik heb inmiddels deze Query (Progress) bij elkaar getoverd:
code:
1
2
3
4
5
6
7
8
9
SELECT 
([Van welk TagNr?]) AS Aantal,
Count([Testformulier]),
Sum([Gereed])*-1,
Sum([GTI uitgev])*-1,
Sum([Opdrgvr acc])*-1,
Sum([Klant acc])*-1
FROM Testformulier
WHERE ([Testformulier].[Id]) Like ([Van welk TagNr?]);

In de eertste regel van de code genereer ik dus het antwoord op de vraag van de query. Zodat ik dat boven aan in het, toekomstig, rapport kan zetten. Maar op die vraag kan je ook antwoorden " * " zodat je alles gegenereerd krijgt. Maar die " * " wil ik dan omzetten in Bijv. "Dit is Alles". Dus wilde ik een UPDATE doen, maar dat is dus niet mogelijk binnen dezelfde query :'(

Maar nu heb ik dus een tweede Query gemaakt, nl:
code:
1
2
3
UPDATE Progress 
SET Aantal = 'Dit is Alles'
WHERE Aantal = '*';

Maar dan de vraag:
Hoe pas ik deze query toe op de Query Progress??

Moet ik een Macro maken met OpenQuery en die dan toepassen op het Rapport van Progress?? :?

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Op vrijdag 26 april 2002 09:48 schreef LeondenOuden het volgende:
:? :? :? :? :? :? :? :? :? :? :? :? :? :? :?
idd ik ben het helemaal met deze post eens.
Uit wat je schrijft leid ik af dat je niet weet wat je doet / kan doen met SQL.
Ga eens wat lezen of laat wat duidelijker zien wat je wil.
Wat is je tabelstructuur bijvoorbeeld?
Pagina: 1