首先,我使用Doctrine2和Symfony2使用MySQL數據庫。 我有以下實體,它與其他人有關係,如你所見。Doctrine2複雜統計查詢
Pge\IncidenciasBundle\Entity\Incidencia:
type: entity
table: incidencia
repositoryClass: Pge\IncidenciasBundle\Entity\IncidenciaRepository
id:
id:
type: integer
generator:
strategy: IDENTITY
fields:
fechaInicio:
type: date
nullable: false
column: fecha_inicio
fechaFinal:
type: date
nullable: true
column: fecha_final
horaInicio:
type: time
nullable: true
column: hora_inicio
horaInicioIndisp:
type: time
nullable: true
column: hora_inicio_indisp
horaFinal:
type: time
nullable: true
column: hora_final
horaFinalIndisp:
type: time
nullable: true
column: hora_final_indisp
causa:
type: text
nullable: true
resumen:
type: string
length: 250
fixed: false
nullable: true
descripcion:
type: text
nullable: true
solucion:
type: text
nullable: true
remedy:
type: string
length: 250
fixed: false
nullable: true
accionesRealizadas:
type: text
nullable: true
column: acciones_realizadas
manyToOne:
prioridad:
targetEntity: Prioridad
estado:
targetEntity: Estado
indisponibilidad:
targetEntity: Indisponibilidad
cliente:
targetEntity: Cliente
inversedBy: incidencia
servicio:
targetEntity: Servicio
lifecycleCallbacks: { }
我試圖做一個查詢,我檢索數據給出的日期,這個輸出(圖像是在HTML中的手工表)
所以,對於每一個Cliente
我需要每行中打印的表格,其Servicio
,併爲每個Prioridad
的發現Incidencia
這樣一個計數器,如果有3 Incidencia
與Prioridad = P0
,1 Prioridad = P1
和2 Prioridad = P3
爲Servicio = KOSMOS
和Cliente = Someone
,該表將輸出這個
Someone
SERVICIO P0 P1 P2 P3
KOSMOS 3 1 0 2
它只是作爲簡單的,但我的問題是,我無法找到產生這種查詢的方式......我試圖創建多個磁盤陣列與一些foreachs和一些querys的東西,創建一個Cliente
分離的數組,併爲每個日期,服務等數組,但我找不到方法來計數Prioridad
,這顯然不是一個好的做法,因爲有約8個foreach,foreach內查詢等...所以不好,但我真的迷失了...
我認爲必須有一個簡單的方法來做到這一點,但不是我的知識...