Vraag : Het aansluiten vanzich bij 3 lijsten

selecteer c.id, g.desc, datum (c.call_start) als date_call, uur (c.call_start) als hour_call, concat (vloer (avg (1.0*c.duration) /60) , „: “, round (avg (1.0*c.duration) %60)) aangezien avg_duration_mm_ss_string
from vraag c de binnen zich bij `t `aansluit. `poort `g op c.id=g.id waar c.call_start > „00:00 2010-07-04: 00“ en c.call_start < „23:59 2010-07-04: 59“ groep door c.id, g.desc, datum (c.call_start), uur (c.call_start) orde door 1.2.3;

Now ik ook een lijst heb noemt callsf als cf. Dat heeft ook call_start. Nu moet ik de telling van call_start bij callf bij elk die uur controleren op identiteitskaart wordt gebaseerd en dan moet ik telling (c.call_start) doen/(count (c.call_start) +count (cf.call_start))

I vergt dat alles in één query.

Antwoord : Het aansluiten vanzich bij 3 lijsten

Wat u voor krijgen

selecteer cf.id, datum (cf.call_start) als D, uur (cf.call_start) als h, telling (cf.call_start) als count_cf
      van callsfcf.
      waar cf.call_start>= „2010-07-04 00:00: 00“ en groep <�>      cf.call_start door cf.id, datum (cf.call_start), uur (cf.call_start)

?
Stelt het op (door identiteitskaart, datum, uur) tegen onderstaand?

      selecteer c.id, datum (c.call_start) als D, uur (c.call_start) als h, telling (c.call_start) als count_c,
            concat (vloer (avg (1.0*c.duration) /60), „: “, ronde (avg (1.0*c.duration) %60)) zoals avg_duration_mm_ss_string
      van vraag c
      waar c.call_start>= „2010-07-04 00:00: 00“ en groep <�>      c.call_start door c.id, datum (c.call_start), uur (c.call_start)

De codedoos zou geen verschil (geruilde binnen/sluit aan zich links lijst bij orde) moeten maken, maar geeft hoe dan ook het een poging.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
selecteer c.id, g.desc, c.d als date_call, c.h als hour_call,
      count_c/NULLIF (count_c + IFNULL (count_cf, 0), 0) als SomePercentage
van `t `. `poort `g
binnen treed toe (
      selecteer c.id, datum (c.call_start) als D, uur (c.call_start) als h, telling (c.call_start) als count_c,
            concat (vloer (avg (1.0*c.duration) /60), „: “, ronde (avg (1.0*c.duration) %60)) zoals avg_duration_mm_ss_string
      van vraag c
      waar c.call_start>= „2010-07-04 00:00: 00“ en c.call_start <>= „00:00 2010-07-04: 00“ en cf.call_start  <>
           
Andere oplossingen  
 
programming4us programming4us