SQL - Usando SUM con CASE

 
Vista:

Usando SUM con CASE

Publicado por Javier (1 intervención) el 17/09/2020 11:36:44
Buenos días, resulta que haciendo una consulta para una base de datos, los datos de esta como: dirección, nombre, apellidos, etc se muestran todos en una misma columna y pensé en aplicar SUM y CASE WHEN en la consulta para convertir las filas en columnas nuevas, pero me tira error en la línea 2 a la hora de ejecutar la consulta, si la ejecuto sin aplicar este caso funciona pero mostrando la información en filas:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
SELECT wp_postmeta.post_id, post_author, post_date, wp_usermeta.meta_key, wp_usermeta.meta_value, wp_posts.ID, wp_posts.post_title, wp_wcfm_marketplace_orders.quantity, wp_wcfm_marketplace_orders.item_total, wp_wcfm_marketplace_orders.created
	SUM(CASE WHEN wp_postmeta.meta_key='_billing_first_name' THEN wp_postmeta.meta_value END) AS Nombre,
	SUM(CASE WHEN wp_postmeta.meta_key='_billing_last_name' THEN wp_postmeta.meta_value END) AS Apellido,
	SUM(CASE WHEN wp_postmeta.meta_key='_billing_address_1' THEN wp_postmeta.meta_value END) AS Ciudad,
	SUM(CASE WHEN wp_postmeta.meta_key='_billing_state' THEN wp_postmeta.meta_value END) AS Estado,
	SUM(CASE WHEN wp_postmeta.meta_key='_billing_postcode' THEN wp_postmeta.meta_value END) AS Codigo,
	SUM(CASE WHEN wp_postmeta.meta_key='_billing_phone' THEN wp_postmeta.meta_value END) AS Telefono,
	SUM(CASE WHEN wp_postmeta.meta_key='_billing_email' THEN wp_postmeta.meta_value END) AS Email
FROM wp_postmeta, wp_posts, wp_usermeta, wp_wcfm_marketplace_orders
-- Identificador Orden
WHERE (wp_wcfm_marketplace_orders.order_id = wp_postmeta.post_id)
-- Identificador Vendedor y Datos Tienda
AND (wp_wcfm_marketplace_orders.vendor_id=wp_usermeta.user_id AND wp_usermeta.meta_key IN ('store_name','billing_address_1','billing_city','billing_postcode','billing_phone','billing_phone','billing_update','billing_state'))
-- Identificador Producto
AND (wp_wcfm_marketplace_orders.product_id = wp_posts.ID)
-- Datos Cliente
AND (wp_postmeta.meta_key IN ('_billing_first_name','_billing_last_name','_billing_address_1','_billing_state','_billing_postcode','_billing_phone','_billing_email'))
GROUP BY wp_postmeta.post_id;

¿Qué podría ser lo que estaría fallando en mi consulta?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Francisco
Val: 150
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Usando SUM con CASE

Publicado por Francisco (62 intervenciones) el 17/09/2020 14:36:31
Hola


Tienes que usar una subquery


1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT wp_postmeta.post_id, post_author, post_date, wp_usermeta.meta_key, wp_usermeta.meta_value, wp_posts.ID, wp_posts.post_title, wp_wcfm_marketplace_orders.quantity, wp_wcfm_marketplace_orders.item_total, wp_wcfm_marketplace_orders.created
  (SELECT SUM(wp_postmeta.meta_value) FROM wp_postmeta WHERE wp_postmeta.meta_key='_billing_first_name') AS Nombre
  ...
FROM wp_postmeta, wp_posts, wp_usermeta, wp_wcfm_marketplace_orders
-- Identificador Orden
WHERE (wp_wcfm_marketplace_orders.order_id = wp_postmeta.post_id)
-- Identificador Vendedor y Datos Tienda
AND (wp_wcfm_marketplace_orders.vendor_id=wp_usermeta.user_id AND wp_usermeta.meta_key IN ('store_name','billing_address_1','billing_city','billing_postcode','billing_phone','billing_phone','billing_update','billing_state'))
-- Identificador Producto
AND (wp_wcfm_marketplace_orders.product_id = wp_posts.ID)
-- Datos Cliente
AND (wp_postmeta.meta_key IN ('_billing_first_name','_billing_last_name','_billing_address_1','_billing_state','_billing_postcode','_billing_phone','_billing_email'))
GROUP BY wp_postmeta.post_id;
}

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar