Как вы суммируете те же продукты в счете? - PullRequest
1 голос
/ 08 августа 2011

У меня есть этот запрос:

declare @usuario as varchar(50), @fecha as datetime
set @usuario ='angel'
set @fecha ='2011/08/07'

select DetalleCompra .id_ali  as [Clave],Alimento .nomAli as [Nombre Alimento], 
    (select sum (cantidad) 
     from DetalleCompra 
     inner join Alimento on DetalleCompra .id_ali =Alimento .id_ali 
     where DetalleCompra .usuario =@usuario  and fecha =@fecha  and FolioCompra is null
    ) as Cantidad, 
    Alimento .precio as [Precio Unitario], ( sum (Cantidad) * precio ) as [Precio Total] 
from DetalleCompra , Alimento 
where DetalleCompra .id_ali =Alimento.id_ali 
    and usuario =@usuario  and  fecha =CONVERT(datetime, @fecha ) and FolioCompra  is null
group by DetalleCompra .id_ali ,Alimento .nomAli , Alimento .precio , DetalleCompra .Cantidad  

где:

usuario=user
fecha=date
detallecompra=details buy
idali= id food
nomali=food's name
foliocompra=folio purchases
precio=price
cantidad=quantity
precio total=total price

Я хочу получить список, но если продукты совпадают, я хочу суммировать их и получитьобщая цена на них.

У них есть имя пользователя и дата, и они являются нулевыми, пока пользователь не «примет» их.

Я хочу получить список, в котором idali появляется дважды или более, они суммируют эту строку, а также суммируют общую цену.

1 Ответ

2 голосов
/ 08 августа 2011

Я полагаю, что вы ищете что-то вроде этого.

Запрос группирует данные по столбцам id (id_ali), name (nomAli) и price (precio).Затем он суммирует количество (cantidad) для создания столбца Total Quantity (я только что написал на английском).Кроме того, формулируется столбец Precio Total с использованием столбцов количества и цены.

Если столбец fecha содержит только значения даты без временных отметок, вы можете сделать простое сравнение, вместо использования DATEDIFF.

DECLARE @usuario AS VARCHAR(50)
DECLARE @fecha AS DATETIME

SET @usuario ='angel'
SET @fecha ='2011/08/07'

SELECT      dc.id_ali   AS [Clave]
        ,   al.nomAli   AS [Nombre Alimento]
        ,   al.precio   AS [Precio Unitario]
        ,   SUM(cantidad)   AS [Total Quantity]
        ,   SUM(cantidad) * al. precio as [Precio Total]            
FROM        DetalleCompra   dc
INNER JOIN  Alimento        al
ON          dc.id_ali       = al.id_ali 
WHERE       usuario         = @usuario  
AND         FolioCompra     is null
AND         DATEDIFF(DAY, fecha, @fecha) = 0
GROUP BY    dc.id_ali 
        ,   al.nomAli 
        ,   al.precio 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...