我必须在 php 中创建一个报告:
- 客户查询按升序订购。
- 将每个客户的总销售额相加。
- 添加每天的总销售额。
- 添加所有客户的总数。
所有这些都适用于一系列日期:
select fecha, razonsocial , precioTotal
from ventas
LEFT JOIN clientes
ON idClientes = clientes_idClientes
where fecha BETWEEN '2016-11-30 00:00:00' AND '2016-11-30 23:59:59'
ORDER BY razonsocial ASC
他们告诉我,重要的数据是总数,他们不必保留当天的销售额,他们只关心总数。
这是我的结构:
CREATE TABLE IF NOT EXISTS `ventas` (
`idVenta` int(255) NOT NULL AUTO_INCREMENT,
`fecha` datetime NOT NULL,
`fecha_pago` datetime DEFAULT NULL,
`nota` int(255) NOT NULL,
`factura` varchar(45) DEFAULT NULL,
`porcDescuento` int(11) NOT NULL,
`tipo` int(1) NOT NULL COMMENT '1 Credito 2 Contado 3 Pendiente de pago 4 Pagado 5 Cancelada ',
`cantidad` int(255) DEFAULT NULL,
`peso` varchar(1000) DEFAULT NULL,
`unidad` int(1) DEFAULT NULL COMMENT '1 pza 2 gr 3 kg',
`precioTotal` decimal(12,2) NOT NULL,
`cancelacion` int(1) DEFAULT NULL,
`productos_idProducto` int(255) NOT NULL,
`usuarios_idUsuario` int(255) NOT NULL,
`clientes_idClientes` int(255) NOT NULL,
`empleados_idRepartidor` int(255) NOT NULL,
`Observaciones` text,
`ObservCancelacion` text,
PRIMARY KEY (`idVenta`),
KEY `fk_ventas_clientes1_idx` (`clientes_idClientes`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5975 ;
CREATE TABLE IF NOT EXISTS `clientes` (
`idClientes` int(255) NOT NULL AUTO_INCREMENT,
`nombre` varchar(45) NOT NULL,
`aPaterno` varchar(45) NOT NULL,
`aMaterno` varchar(45) DEFAULT NULL,
`razonsocial` varchar(50) DEFAULT NULL,
`rfc` varchar(30) NOT NULL,
`email` varchar(100) NOT NULL,
`calle` varchar(300) NOT NULL,
`tipo` int(1) DEFAULT NULL COMMENT '1 credito 2 contado 3 Pendiente de pago',
`tel` int(15) DEFAULT NULL,
`cel` int(20) DEFAULT NULL,
`activo` int(1) NOT NULL DEFAULT '1',
`estados_idEstado` int(255) NOT NULL,
`municipios_idMunicipio` int(255) NOT NULL,
`colonias_idColonia` int(255) NOT NULL,
`sucursales_idSucursal` int(255) NOT NULL,
PRIMARY KEY (`idClientes`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=49 ;
ALTER TABLE `ventas`
ADD CONSTRAINT `fk_ventas_clientes1`
FOREIGN KEY (`clientes_idClientes`)
REFERENCES `clientes` (`idClientes`) ON DELETE NO ACTION ON UPDATE NO ACTION;
[版]
老师 我已经有 3 个问题中有 2 个是我的搭档 @marcelolemus 帮助我的
1- 添加每个客户的总销售额。
select companyname , SUM(totalprice) from sales LEFT JOIN customers ON customerid = customers_customerid WHERE date BETWEEN '2016-11-30 00:00:00' AND '2016-11-30 23:59:59' group by companyname
3-添加所有客户的总数
从“2016-11-30 00:00:00”和“2016-11-30 23:59:59”之间的销售日期中选择 SUM(totalprice)
2- 添加每天的总销售额 从销售额中选择 SUM(pricetotal)
从销售额中选择 SUM(totalprice)
我尝试使用此查询,它给了我一个错误,即日期字段不存在,但我确实有该字段
从销售中选择 SUM(totalprice) 作为 totalperday WHERE date BETWEEN '2016-11-30 00:00:00' AND '2016-11-30 23:59:59' group by date(datetime)
我对其进行了修改,但它只为我在这些日期之间的每个客户提供了 1 条销售记录
从销售中选择 SUM(totalprice) 作为 totalperday WHERE date BETWEEN '2016-11-30 00:00:00' AND '2016-11-30 23:59:59' group by date
我会睡一会儿也许我需要它我刚从夜班回来嘿嘿真的很感谢你有时在梦之间答案出来了嘿嘿。
您查询的内容似乎很容易,我想说只有在查询中使用 SUM() 才能获取所有值。
关于对公司名称进行排序,我建议将所有结果传递给一个数组,用确定的字符串(客户名称)替换值,然后根据您的需要对其进行排序(例如排序)。
添加每个客户的总销售额。
添加每天的总销售额
添加所有客户的总数