gpt4 book ai didi

sql - 如何从SQL Server查询数据?

转载 作者:行者123 更新时间:2023-12-02 23:05:13 30 4
gpt4 key购买 nike

我在从数据库查询数据以在 VB.NET 中制作报告时遇到问题。我使用业务对象来制作报告。这是我的示例数据:

___________________________________________________________________________
| | | | | | |
| Id | Item | Unit | Unit Price | Quantity | Amount |
|____|_______________|__________|_____________|___________|_______________|
| 1 | Gasoline | L | $ 2.00 | 10 | $ 20.00 |
| 1 | Gasoline | L | $ 2.50 | 20 | $ 50.00 |
| 2 | Water | Bottle | $ 5.00 | 10 | $ 50.00 |
| 3 | Meat | Kg | $ 14.90 | 15 | $ 223.50 |
| 1 | Gasoline | L | $ 8.00 | 50 | $ 400.00 |
| 4 | Milk | Can | $ 7.45 | 30 | $ 223.50 |
| 1 | Gasoline | L | $ 6.99 | 10 | $ 69.90 |
|____|_______________|__________|_____________|___________|_______________|

在报告中,我想查看“Id”、“Item”、“Unit”、“Unit Price”(是的,如果它们具有不同的值,我将显示“Undefined”)、“Quantity” ”(同一项目的总和)和“金额”(同一项目的总和)。但我尝试了几次,结果都是错误的。如果所有相同商品的“单价”完全不同,如何计算“金额”。这是我的预期结果:

___________________________________________________________________________
| | | | | | |
| Id | Item | Unit | Unit Price | Quantity | Amount |
|____|_______________|__________|_____________|___________|_______________|
| 1 | Gasoline | L | Undefined | 90 | $ 539.90 |
| 2 | Water | Bottle | $ 5.00 | 10 | $ 50.00 |
| 3 | Meat | Kg | $ 14.90 | 15 | $ 223.50 |
| 4 | Milk | Can | $ 7.45 | 30 | $ 223.50 |
|____|_______________|__________|_____________|___________|_______________|

请帮助我......

最佳答案

如果我理解正确的话,这应该符合你的要求:

SELECT  A.Id, 
A.Item,
A.Unit,
CASE WHEN B.Id IS NOT NULL THEN 'Undefined' ELSE [Unit Price] END [Unit Price],
A.Quantity,
A.Amount
FROM ( SELECT Id, Item, Unit,
CAST(MIN([Unit Price]) AS VARCHAR(20)) [Unit Price],
SUM(Quantity) Quantity, SUM(Amount) Amount
FROM YourTable
GROUP BY Id, Item, Unit) A
LEFT JOIN ( SELECT Id
FROM YourTable
GROUP BY Id
HAVING COUNT(DISTINCT [Unit Price]) > 1) B
ON A.Id = B.Id

添加了sql fiddle供您尝试。 (归功于@bonCodigo,因为我的 fiddle 是基于他已有的 fiddle ,但使用的是我的代码)。

这是结果:

ID  ITEM        UNIT        PRICE       QUANTITY    AMOUNT
1 Gasoline L Undefined 90 539.9
2 Water Bottle 5.00 20 99.9
3 Meat Kg 14.90 15 223.5
4 Milk Can 7.45 30 223.5

关于sql - 如何从SQL Server查询数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14043162/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com