abonnement Unibet Coolblue
pi_99742637
Oh je wilt ook met 0 erbij dat had ik niet gezien, even overheen gelezen ;+

Geef me paar minuten en je hebt je query :+
pi_99742772
quote:
0s.gif Op donderdag 21 juli 2011 11:41 schreef Pakspul het volgende:
Oh je wilt ook met 0 erbij dat had ik niet gezien, even overheen gelezen ;+

Geef me paar minuten en je hebt je query :+
Ja als het kan wel want dat scheelt me wat logica in de stap erna :P
pi_99743392
1
2
3
4
5
6
7
8
9
10
SELECT 
    ID, 
    Names, 
    (SELECT COUNT(t2.ID) FROM `names` t2 WHERE t2.Names = t1.Names AND Status = 'Passed' ) as 'Passed',
    (SELECT COUNT(t2.ID) FROM `names` t2 WHERE t2.Names = t1.Names AND Status = 'Failed' ) as 'Failed',
    (SELECT COUNT(t2.ID) FROM `names` t2 WHERE t2.Names = t1.Names AND Status = 'Skipped' ) as 'Skipped'
FROM 
    `names` t1
GROUP BY 
    t1.Names

Weet niet zeker of met subqueries werken het beste is, ik wil zo nog een testen of het met JOINS kan, maar hier heb je al iets om mee te werken.

Let even op bij de tabelnaam, deze is nu 'names' die moet je nog even aanpassen.
pi_99743443
Ok thanks _O_ even testen hoor!
pi_99743837
Woei die query is of super traag bij mij of hij loopt oneindig :P
pi_99743877
Hoeveel records heb je er in staan? Ik verwacht dat hij super traag is.
pi_99743945
maar 2000 ofzo :P
pi_99743977
Haal Skipped en failed er eens uit en voer hem nog eens uit en kijk eens of hij het wel doet?
pi_99744021
quote:
0s.gif Op donderdag 21 juli 2011 12:15 schreef Pakspul het volgende:
Haal Skipped en failed er eens uit en voer hem nog eens uit en kijk eens of hij het wel doet?
Heb al getest met 1 naam en hij doet het :) alleen voor 1 record doet ie al 4-5 seconde _O-
pi_99744192
Je kunt natuurlijk ook deze query gebruiken:

1SELECT Names, Status, COUNT(ID) AS 'Count' FROM tabel GROUP BY Names, Status

Om huidige resultaten op te halen en dan die in een goede tabel te stoppen. Eerst loop je door de resultaten heen om te kijken wat je allemaal hebt. Hiermee kun je mooi een array vullen. Bijvoorbeeld:

1
2
3
4
5
6
7
8
9
10
11
<?php
$array 
= array(
    
'naam_1' => array(
        
'Passed = 0,
        '
Skipped 0,
        
'Failed' 0,
    ),
);

$array[$record['Names']]['Passed'] = $record['Count'];
?>

of je Passed, Skipped of Failed moet je uitzoeken met een SWITCH CASE
pi_99744290
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$result 
mysql_query('SELECT Names, Status, COUNT(ID) AS 'Count' FROM tabel GROUP BY Names, Status');

$outputArray = array();

while(
$record mysql_fetch_assoc($result)
{
    if ( isset(
$outputArray[$record['Names']]) === false )
    {
        
$outputArray[$record['Names']] = array(
            
'Passed' 0,
            
'Skipped' 0,
            
'Failed' 0,
        );
    }

    
$outputArray[$record['Names']][$record['Status']] = $record['Count'];
}
?>

Nu heb je een leuke array welke je kunt doorlopen om de tabel goed te vullen :)

1
2
3
4
5
6
7
<?php
foreach ($outputArray as $naam => $info)
{
    
// voorbeeld output: 'Naam_1 (5,2,0)
    
echo $naam " (" $info['Passed'] . "," $info['Skipped'] . "," $info['Failed'] . ")";
}
?>

Waar de echo staat kun je de insert query gaan bouwen :)
pi_99744635
Thanks voor je voorbeeld ^O^ zal eens kijken of ik me huidige code (andere taal trouwens) aanpas of dat ik het dan nu gewoon zo laat zoals het is :) iig zoals gezegd bedankt!
pi_99744743
Je zult wat dingen moeten aanpassen, maar berekende dingen (echt zware berekeningen) moet je niet database uitvoeren. Zelfde als bij een forum, daar ga je de topic of post count niet berekenen, want dat duurt veels te lang. Dan kun je er beter voor kiezen een kolom op te nemen waar je dit kunt opslaan en snel weer terug kunt halen.

Succes er mee, en als er nog iets is dan horen we het wel weer :)
pi_99832830
opgelost :D
Just say hi!
  maandag 25 juli 2011 @ 12:50:06 #65
267443 Cue_
Cuecumbergirl
pi_99917755
Kort vraagje;

Ik wil een rij van de ene tabel naar de andere tabel queryen.
wat eigenlijk neer komt op :

insert into table1 values (select * from table 2 where iets = iets)

Maar letterlijk werkt ie zo niet, want hij ziet volgens mij die select als 1 value.Iemand ideeen?
tnx alvast! :)
  maandag 25 juli 2011 @ 12:53:18 #66
12221 Tijn
Powered by MS Paint
pi_99917850
quote:
5s.gif Op maandag 25 juli 2011 12:50 schreef Cue_ het volgende:
Kort vraagje;

Ik wil een rij van de ene tabel naar de andere tabel queryen.
wat eigenlijk neer komt op :

insert into table1 values (select * from table 2 where iets = iets)

Maar letterlijk werkt ie zo niet, want hij ziet volgens mij die select als 1 value.Iemand ideeen?
tnx alvast! :)
Zoiets?

1
2
3
INSERT INTO target_table (col1, col2, col3, col4) 
    SELECT (col1, col2, col3, col4) FROM source_table 
    WHERE iets = iets;
  maandag 25 juli 2011 @ 12:58:17 #67
267443 Cue_
Cuecumbergirl
pi_99917983
quote:
5s.gif Op maandag 25 juli 2011 12:53 schreef Tijn het volgende:
Zoiets?
[ code verwijderd ]

Ik zal dus echt alle kolomnamen moeten uitschrijven?
  maandag 25 juli 2011 @ 13:24:25 #68
12221 Tijn
Powered by MS Paint
pi_99918829
quote:
0s.gif Op maandag 25 juli 2011 12:58 schreef Cue_ het volgende:

[..]

Ik zal dus echt alle kolomnamen moeten uitschrijven?
Ja, maar dat is toch sowieso wel een goed idee? Anders faalt je query als je later ooit eens een kolom aan je tabel toevoegt.
  maandag 25 juli 2011 @ 13:26:49 #69
267443 Cue_
Cuecumbergirl
pi_99918916
quote:
2s.gif Op maandag 25 juli 2011 13:24 schreef Tijn het volgende:

Ja, maar dat is toch sowieso wel een goed idee? Anders faalt je query als je later ooit eens een kolom aan je tabel toevoegt.
de twee tabellen zullen identiek zijn, dus daar maak ik me geen zorgen over. Maar tnx :) hij werkt!
  maandag 25 juli 2011 @ 13:41:21 #70
12221 Tijn
Powered by MS Paint
pi_99919392
quote:
0s.gif Op maandag 25 juli 2011 13:26 schreef Cue_ het volgende:

[..]

de twee tabellen zullen identiek zijn
Famous last words :7

quote:
Maar tnx :) hij werkt!
Ik ben wel benieuwd waarom je eigenlijk dubbele data wil opslaan in je database. Heb je niet genoeg aan gewoon het ID van de rij die je nodig hebt?
  maandag 25 juli 2011 @ 13:41:57 #71
84244 Scorpie
Abject en infaam!
pi_99919411
quote:
2s.gif Op maandag 25 juli 2011 13:41 schreef Tijn het volgende:

[..]

Famous last words :7

[..]

Ik ben wel benieuwd waarom je eigenlijk dubbele data wil opslaan in je database. Heb je niet genoeg aan gewoon het ID van de rij die je nodig hebt?
Ik vermoed dat het iets van logging of archiving is dat Cue_ wil bewerkstelligen.
Op dinsdag 13 augustus schreef Xa1pt:
Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
Op donderdag 25 juni 2015 schreef KoosVogels:
Klopt. Ik ben een racist.
  maandag 25 juli 2011 @ 13:43:55 #72
267443 Cue_
Cuecumbergirl
pi_99919489
quote:
0s.gif Op maandag 25 juli 2011 13:41 schreef Scorpie het volgende:
Ik vermoed dat het iets van logging of archiving is dat Cue_ wil bewerkstelligen.
Dat inderdaad :)
Zijn waarschijnlijk nog wel meer methodes voor, maar deze is voor dit geval gekozen.
  maandag 25 juli 2011 @ 13:44:12 #73
267443 Cue_
Cuecumbergirl
pi_99919501
quote:
2s.gif Op maandag 25 juli 2011 13:41 schreef Tijn het volgende:

Famous last words :7
i know ;(
  maandag 25 juli 2011 @ 13:44:57 #74
305897 remi1986
This MF is infected by madness
pi_99919520
Ik heb een array die er zo uit ziet

1
2
3
4
5
6
<?php
$results
[2010]['medewerker']['jan']['percentage'] = 10
$results
[2010]['medewerker']['piet']['percentage'] = 20
$results
[2011]['medewerker']['jan']['percentage'] = 15
$results
[2011]['medewerker']['piet']['percentage'] = 20
?>

De namen van de medewerkers zijn ff fictief, maar heeft ook niks te maken met het uiteindelijke doel.

Ik wil nu de percentages aflopend sorteren van het hoogste jaar (in dit geval 2011, maar is variabel). Alleen als de percentages van 2011 worden gewijzigd (en dus de keys ook), wil ik dat ook van de andere jaren doen, aangezien alles in een tabel wordt weergegeven.

Ik heb gekeken naar de standaard array sort functies (sort, asort, multisort etc.), maar volgens mij is er geen standaard functie voor.

Heeft iemand een idee om dit voor elkaar te krijgen?
  maandag 25 juli 2011 @ 13:48:05 #75
84244 Scorpie
Abject en infaam!
pi_99919634
quote:
0s.gif Op maandag 25 juli 2011 13:43 schreef Cue_ het volgende:

[..]

Dat inderdaad :)
Zijn waarschijnlijk nog wel meer methodes voor, maar deze is voor dit geval gekozen.
Data replicatie is niet altijd de beste manier. Kan je neit beter gewoon een indicator maken die aangeeft dat de record in kwestie is verwijderd/readonly/archived is ?
Op dinsdag 13 augustus schreef Xa1pt:
Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
Op donderdag 25 juni 2015 schreef KoosVogels:
Klopt. Ik ben een racist.
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')