uitdagende query

Status
Niet open voor verdere reacties.

rolfh159

Gebruiker
Lid geworden
11 okt 2008
Berichten
41
Hallo,
Ik ben volledig nieuw hier en ook op forums dus excuse me als ik domme vragen stel.
Ik probeer uit een database met een query diverse gevens te halen en die met een dataselectie weer te geven in een resultaat.
Het probleem is dat ik alles graag in 1 sheet als resultaat zou willen hebben terwijl de gegevens selectie uit 2 tabellen moeten komen.
in de screenshot zie je hoever ik ben gekomen en wat de foutmelding is.
Kan iemand me helpen?
 

Bijlagen

  • naamloos.jpg
    naamloos.jpg
    94 KB · Weergaven: 41
Ik mis de group by in de query, dat werkt zo:
PHP:
SELECT kolom1
,      kolom2
,      SUM( kolom3 ) AS kolom3
FROM   tabel
GROUP BY kolom1
,      kolom2

In dit voorbeeld wordt kolom 3 gesommeerd, dan moet er gegroepeerd worden op kolom 1 en 2. Succes!
 
uiteraard bedankt voor je reaktie. ik heb het nu aangepast. maar krijg nog de zelfde melding. Dit heb ik neer gezet:
PHP:
select employee_turnover_target.employee_name, employee_turnover_target.age,
employee_turnover_target.code_function_level, employee_turnover_target.amount_treatment_pd,
employee_turnover_target.amount_article_pd, employee_turnover_target.amount_total_pd , employee_filling_day.code,
employee_filling_day.employee_name, SUM(employee_filling_day.HOURS_PRESENT) HOURS_PRESENT, 
SUM(employee_filling_day.HOURS_EFFECTIVE) HOURS_EFFECTIVE
from EMPLOYEE_FILLING_DAY('1/1/2007', '1/31/2007'), employee_turnover_target('1/1/2007', '1/30/2007')
group by employee_name, code

waar doe ik het fout?
Ben met knippen en plakken op deze query gekomen en ben nog niet echt helemaal thuis in sql.
 
Alle kolommen waar geen sum omheen staat moeten achter de group by terecht komen:
PHP:
select employee_turnover_target.employee_name
,      employee_turnover_target.age
,      employee_turnover_target.code_function_level
,      employee_turnover_target.amount_treatment_pd
,      employee_turnover_target.amount_article_pd
,      employee_turnover_target.amount_total_pd
,      employee_filling_day.code
,      employee_filling_day.employee_name
,      SUM(employee_filling_day.hours_present) hours_present
,      SUM(employee_filling_day.hours_effective) hours_effective 
from   employee_filling_day('1/1/2007', '1/31/2007')
,      employee_turnover_target('1/1/2007', '1/30/2007') 
where  employee_turnover_target.employee_name = employee_filling_day.employee_name
group by employee_turnover_target.employee_name
,      employee_turnover_target.age
,      employee_turnover_target.code_function_level
,      employee_turnover_target.amount_treatment_pd
,      employee_turnover_target.amount_article_pd
,      employee_turnover_target.amount_total_pd
,      employee_filling_day.code
,      employee_filling_day.employee_name
 
Je bent fantastisch!!!
Ik had nooit gedacht dat het zou werken
Dit gaat me veel tijd schelen!!
Super bedankt.
Moet ik nog iets doen om je te danken en om de vraag te sluiten?
 
Nee hoor, ik zie dat je de vraag ook al op opgelost hebt gezet, dan hoeft er verder niets te gebeuren. Nou ja, een beetje reclame maken voor Helpmij bij familie en bekenden mag natuurlijk altijd ;).
 
Nooit eerder gedaan zo'n forum, maar vindt het echt leuk. Ben al het hele weekeind mensen aan het helpen.....
Ga zeker reklame maken!
Nogmaals bedankt!
 
Zou het ook mogelijk zijn om deze query op 14 databases te gelijk uit te kunnen voeren? en als dat niet kan, zou het dan mogelijk zijn om in 1 output alle 12 de losse maanden te krijgen?
 
Eén query op 14 databases wordt wel erg ingewikkeld, misschien is het eenvoudiger om het commando union te gebruiken. Dan krijg je het resultaat van 12 losse maanden in 1 output. Dat werkt op deze manier:
PHP:
mysql> SELECT 'testje' tekst
    -> FROM   dual
    -> UNION
    -> SELECT 'testje 2' tekst
    -> FROM   dual
    -> UNION
    -> SELECT 'testje 3' tekst
    -> FROM   dual;
+----------+
| tekst    |
+----------+
| testje   |
| testje 2 |
| testje 3 |
+----------+
3 rows in set (0.00 sec)

Met union kun je dus losse queries aan elkaar plakken. Waar je op moet letten is dat het aantal kolommen gelijk moet zijn van iedere query en dat het type gelijk moet zijn (tekst, nummer, datum).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan