Alle weken van het jaar selecteren

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Tobias Tobias

Tobias Tobias

10/05/2013 08:58:54
Quote Anchor link
Hallo,

Ik haal mbv een query het totaal van alle afboekingen van een artikel op per week.
Nu krijg ik alleen de weken waarin ook daadwerkelijk afboekingen gedaan zijn, de weken met totaal 0 worden weggelaten.

Ik wil dat als er in een week geen afboeking gedaan zijn, het totaal 0 is voor die week

de query:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$query
= mysql_query("SELECT
        SUM(aantal) AS totaal,
        WEEKOFYEAR(datum_tijd) AS week_nummer,
        YEAR(datum_tijd) AS jaar  
        FROM vobis_af_bij
        WHERE artikel_code = '$artikel'
        GROUP BY YEAR(datum_tijd),WEEK(datum_tijd)
        ORDER BY jaar ASC, week_nummer ASC"
);
?>
Gewijzigd op 10/05/2013 09:00:12 door Tobias Tobias
 
PHP hulp

PHP hulp

17/11/2024 21:39:23
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

10/05/2013 10:13:19
Quote Anchor link
Heb je in de db een tabel met meer dan 53 rijen en waarvan je zeker bent dat de in PK de nummers 1 t/m 53 voorkomen, zou je eerst in een subquery die nummers kunnen selecteren en dan met een left join de vobis_af_bij tabel er aan koppelen.
 
Tobias Tobias

Tobias Tobias

10/05/2013 12:56:38
Quote Anchor link
Ik heb wel manieren om eromheen te werken, maar ik ben nieuwsgierig of het ook in 1keer in 1 query kan
 
Eddy E

Eddy E

10/05/2013 13:03:54
Quote Anchor link
Misschien is het als vloeken in de kerk, en ongetwijfeld is Ger van Steenderen het er niet mee eens, maar persoonlijk zou ik een extra tabel gebruiken.
Zie http://www.webmastercity.nl/forum/viewtopic.php?f=35&t=38059
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

10/05/2013 14:34:35
Quote Anchor link
Inderdaad Eddy, dat heb je helemaal goed! :-P

Tobias,
Ja, dat kan in één query. Ik heb in mijn db een aantal tabellen waarvan ik zeker weet dat er nooit rijen uit gedelete zullen worden, anders gezegd komen daar de nummers 1 t/m 53 in voor.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
SELECT w.weeknr, YEAR(v.datum_tijd) jaar,
    COALESCE(SUM(v.aantal), 0) aantal
FROM
    (SELECT some_id as weeknr FROM some_tabel WHERE some_id < 54) w
LEFT JOIN
    vobis_bij_af v
    ON w.weeknr = WEEKOFYEAR(v.datum_tijd)
WHERE artikel_code = 123456
GROUP BY jaar, weeknr
ORDER BY jaar, weeknr    


En wellicht is het niet onverstandig het weeknr als kolom op te nemen in de vobis_bij_af tabel
 
Tobias Tobias

Tobias Tobias

10/05/2013 15:36:49
Quote Anchor link
Bedankt!
Ik zal het maandag op het werk gaan testen
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.