Rekeningrijden is onvermijdelijk, uitstel is struisvogelpolitiek.
Verwijderd
waarkomen de witte- en rode-deur vandaan? (hoe ziet je db layout er uit)
gebruik iets van: SUM(wittedeur) en SUM(rodedeur)
gebruik iets van: SUM(wittedeur) en SUM(rodedeur)
Geen SUM gebruiken, je gaat deuren TELLEN niet OPTELLEN. COUNT dus. eehm, heb je een lijstje met de velden en types?
"If you don't know where you are going, any road will take you there"
Misschien is het handig om de output te geven?
Zodat we kunnen zien wat er fout is...
Zodat we kunnen zien wat er fout is...
Waarschijnlijk wil je een count per soort deur doen 
Je wil dus selecteren op deursoort, dus in je where.
Zul je dus meerdere statements nodig hebben.
Ideetje hoe ik dit getruukt in oracle zou doen:
sum(decode(deursoort, 'wittedeur',1,0)) wittedeuren
, sum(decode(deursoort, 'rodedeur',1,0)) rodedeuren
Geen idee of je dit soort truukjes ook in Informix kunt doen.
Je wil dus selecteren op deursoort, dus in je where.
Zul je dus meerdere statements nodig hebben.
Ideetje hoe ik dit getruukt in oracle zou doen:
sum(decode(deursoort, 'wittedeur',1,0)) wittedeuren
, sum(decode(deursoort, 'rodedeur',1,0)) rodedeuren
Geen idee of je dit soort truukjes ook in Informix kunt doen.
Who is John Galt?
De db layout willen jullie helemaal niet weten. Het betreft een database van een woningbouwvereniging. De documentatie is zeer beperkt en de database is dat niet.
Het voorbeeld is uit de duim gezogen, met een bijpassende db layout. Ik loop vast in mijn kennis van SQL. Ik zoek eigenlijk een soort COUNTIF. Helaas bestaat die niet of heet deze functie zo erg anders dat ik hem niet herken. Hieronder een herschreven voorbeeld van wat ik bedoel.
Een mogelijke db layout:
Het voorbeeld is uit de duim gezogen, met een bijpassende db layout. Ik loop vast in mijn kennis van SQL. Ik zoek eigenlijk een soort COUNTIF. Helaas bestaat die niet of heet deze functie zo erg anders dat ik hem niet herken. Hieronder een herschreven voorbeeld van wat ik bedoel.
code:
1
2
3
4
5
6
7
8
| SELECT wijk.wijknaam wijk gebouwgegevens.gebouwnaam gebouw, COUNT(*) aantal, COUNTIF(gebouwgegevens.deurtype = "wit") aantalwit, COUNTIF(gebouwgegevens.deurtype = "rood") aantalrood WHERE wijk.gebouwnr = gebouwgegevens.gebouwnr GROUP BY 1,2 ORDER BY 1,2 |
Een mogelijke db layout:
code:
1
2
3
4
5
6
7
8
9
10
11
| tabel wijk: gebouwnr: INTEGER wijknaam: CHAR[30] tabel gebouwgegevens: gebouwnr: INTEGER gebouwnaam: CHAR[30] deurtype: CHAR[30] raamtype: CHAR[30] verdiepingen: INTEGER etc. |
Rekeningrijden is onvermijdelijk, uitstel is struisvogelpolitiek.
Verwijderd
Misschien zoiets proberen:
code:
1
2
3
4
5
6
7
8
9
| SELECT wijk.wijknaam wijk
gebouwgegevens.gebouwnaam gebouw,
COUNT(*) aantal,
(SELECT count(*) FROM gebouwgegevens1
WHERE wijk.gebouwnr = gebouwgegevens1.gebouwnr and gebouwgegevens1.deurtype = "wit") aantalwit,
...
WHERE wijk.gebouwnr = gebouwgegevens.gebouwnr
GROUP BY 1,2
ORDER BY 1,2 |
Goed idee om het via een subquery op te lossen. Het heeft wel de potentie de boel ongelofelijk te vertragen. Het moet dus wel een correlated subquery zijn. Helaas geeft dit in eerste instantie een syntax error. Blijkbaar zie ik nog wat over het hoofd.
Rekeningrijden is onvermijdelijk, uitstel is struisvogelpolitiek.
Pagina: 1