UPDATE カウントに応じて1または0を取得できましたが、「Servicio」列で区切られていないため、一致する行がある場合、すべてが1または0になります...
機能していない次のクエリがあります...実行が停止することはありません。必要なのは、各「Servicios」列に0または1を追加することです...
「Entidades」と「Servicios」との関係で、「Banksphere」、「PAS」、「CAM」の 3 つのテーブルがあります。
PAS と CAM には "servicio_id" がありませんが、Servicios の "Join" を使用して修正します... OK PAS の "Servicio" は 3 で、CAM は 0 です。
うまく説明できたと思います...今はうまくできません。PCを使用していません。
例:
Banksphere [ id | entidad_id | servicio_id | reconocido ]
[ 1 | 3 | 9 | 0 ]
[ 2 | 1 | 1 | 1 ]
[ 3 | 4 | 6 | 0 ]
PAS [ id | entidad_id | reconocido ]
[ 1 | 3 | 0 ]
[ 2 | 5 | 1 ]
[ 3 | 4 | 0 ]
CAM [ id | entidad_id | reconocido ]
[ 1 | 0 | 1 ]
[ 2 | 0 | 1 ]
[ 3 | 0 | 1 ]
私が欲しいresulsetはこれです....
[ Entidad | Servicio | Alertas ]
[ 0 | 0 | 1 ]
[ 1 | 1 | 1 ]
[ 3 | 9 | 0 ]
[ 3 | 3 | 0 ]
[ 4 | 6 | 0 ]
[ 4 | 3 | 0 ]
[ 5 | 3 | 1 ]
誰かが私を助けることができますか?どうもありがとうございました...
SELECT DISTINCT entidad, value, alertas
FROM (SELECT Entidades.id AS entidad,
Servicios.nombre AS servicio1,
sp.nombre AS servicio2,
sc.nombre AS servicio3,
CASE WHEN (
CASE WHEN (SELECT COUNT(Banksphere.reconocido) FROM Banksphere WHERE Banksphere.reconocido = '0' AND Banksphere.fecha = '2012-12-18') = 0 THEN 0 ELSE 1 END
+ CASE WHEN (SELECT COUNT(PAS.reconocido) FROM PAS WHERE PAS.reconocido = '0' AND PAS.fecha = '2012-12-18') = 0 THEN 0 ELSE 1 END
+ CASE WHEN (SELECT COUNT(CAM.reconocido) FROM CAM WHERE CAM.reconocido = '0' AND CAM.fecha = '2012-12-18') = 0 THEN 0 ELSE 1 END) = 0 THEN 0 ELSE 1 END AS alertas
FROM Entidades
LEFT JOIN (Banksphere INNER JOIN Servicios
ON ( Banksphere.servicio_id = Servicios.id ))
ON Entidades.id = Banksphere.entidad_id
AND Banksphere.fecha = '2012-12-18'
LEFT JOIN (CAM
INNER JOIN Servicios sc
ON ( sc.nombre = 'CAM' ))
ON Entidades.id = CAM.entidad_id
AND CAM.fecha = '2012-12-18'
LEFT JOIN (PAS
INNER JOIN Servicios sp
ON ( sp.nombre = 'PAS' ))
ON Entidades.id = PAS.entidad_id
GROUP BY Entidades.id,
Entidades.nombre,
Servicios.nombre,
sp.nombre,
sc.nombre,
Banksphere.reconocido,
PAS.reconocido,
CAM.reconocido
)
src
UNPIVOT ( value FOR col IN (servicio1, servicio2, servicio3) ) unpiv
GROUP BY alertas, entidad, value
ORDER BY entidad ASC, value ASC