获得总价格和物品的数量与价格出售变化
问题描述:
我有这些表:获得总价格和物品的数量与价格出售变化
- 项目(PK:ID |名称)
- priceChanges(PK:ID | FK:ITEM_ID |价格| FROM日期| TODATE)
- 请求(PK:ID | deliveryDate)
- requested_category(PK:ID | assigned_quantity | FK:ITEM_ID | FK:REQUEST_ID)
的PriceChanges表保持TR每个项目的价格变化的确认。
我想要将两个日期之间销售的物品与ech物品的总收入(价格*数量)进行比较,而数量是该期间以相同价格销售的物品的总计数(没有物品的价格变化) 。
这意味着,只要价格变化我得到一个新的行与新的价格出售的项目总数。
这里是期望输出的为例:
id Name sold price total ------ ------- ----- ------ ------ 8P01 51645A 3 1,20 3,60 8P01 51645A 1 2,82 2,82 8P01 51645A 5 2,50 12,50
我已经试过SQL命令,但我不能停止获取太多的重复列:
SELECT
i.id,
i.name,
sum(rc.assigned_quantity) AS assigned_quantity,
pc.price,
pc.price * sum(rc.assigned_quantity) as total
FROM requested_category rc
LEFT JOIN items i ON rc.item_id = i.id
LEFT JOIN request r ON rc.request_id = r.id
LEFT JOIN priceChanges pc ON pc.item_id = i.id
WHERE
r.delivery_date BETWEEN 'startDate' AND 'endDate'
GROUP BY i.id, i.name, pc.price
我得到的结果是:
id Name sold price total ------ ------- ----- ------ ------ 8P01 51645A 3 1,20 3,60 8P01 51645A 1 1,20 1,20 8P01 51645A 5 1,20 6,00 8P01 51645A 3 2,82 7,86 8P01 51645A 1 2,82 2,82 8P01 51645A 5 2,82 12,10 8P01 51645A 3 2,50 7,50 8P01 51645A 1 2,50 2,50 8P01 51645A 5 2,50 12,50
我试图在后续查询以下意见要求:
SELECT i.id, i.name, rc.assigned_quantity, pc.price
FROM requested_category rc
LEFT JOIN items i ON rc.item_id = i.id
LEFT JOIN request r ON rc.request_id = r.id
LEFT JOIN priceChanges pc ON pc.item_id = i.id
WHERE r.delivery_date BETWEEN 'startDate' AND 'endDate'
我得到这样的结果:
id name assigned_quantity price 8P01 51645A 1 1.20 8P01 51645A 1 2.82 8P01 51645A 1 2.50 8P01 51645A 3 1.20 8P01 51645A 3 2.82 8P01 51645A 3 2.50 8P01 51645A 5 1.20 8P01 51645A 5 2.82 8P01 51645A 5 2.50
谢谢
答
我回来跟我所用的解决方案。
在我的应用程序中,我使用Symfony Framewok和Doctine Framework来处理数据库。
我不是DBAdmin,但我认为这个解决方案也可以通过数据库触发器来实现。在这种情况下,我选择了应用方法,因为我使用了Top-Down design。
需求背后的业务逻辑是试图获知商店输出报告(每期的商品*价格),因为知道价格是固定在商品的输入时间。
我使用了Entity Listener,它可以监视物品价格的任何变化。每当发生变化时,我会记录(价格,数量,开始日期,结束日期)
并且当生成报告时,我只需将期间与物料价格变化进行匹配,然后将其乘以记录的数量数据库条目。
希望我帮了某人。
你可以发表你的查询返回pls的样本吗? – 2015-01-20 23:04:34
请指出(添加到您的文章)您的主键和外键。 – 2015-01-20 23:04:37
你有没有尝试删除左连接,只是做标准连接? – 2015-01-21 00:01:21