首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按两个参数查询SQL Server

按两个参数查询SQL Server
EN

Stack Overflow用户
提问于 2013-08-29 18:03:33
回答 2查看 125关注 0票数 0

我有一个表,假设dbo.Orders,我有一个查询:

代码语言:javascript
复制
SELECT Orders, COUNT(*) FROM dbo.Orders
GROUP BY Orders

结果是

代码语言:javascript
复制
Order1     7
Order2     4
Order3     6
Order4     5
Etc

A有一列,每个订单号都是- OrderCounter。我想得到的是:

代码语言:javascript
复制
SELECT * COUNT(*) FROM dbo.Orders
WHERE Orders IN (Order1,Order2,Order3…. )

并通过与相应订单相关的OrderCounter - max、max-1、max-2等中的某个值来选择每个订单行

代码语言:javascript
复制
Order1    MAX(Order1)
Order2    MAX(Order2)
Order3    MAX(Order3)
Order4    Max(Order4)
Etc

似乎我的问题不容易表达。我有一个表,其中有两列- Item和ItemCounter,因此一个项目可以在表中出现多次:

代码语言:javascript
复制
1. Items ItemCounter ….n
2. Item1  1
3. Item2  1
4. Item2  2
5. Item3  1
6. Item3  2

这是我想象中的代码,当然它不能工作,但我希望它能显示我想要得到的东西。

代码语言:javascript
复制
SELECT * FROM Items
WHERE Item IN ('9108915', '9324853', '8029717') AND 
       IN (MAX(ItemCounter1) for Item1,     
           MAX(ItemCounter2) for Item2, 
           MAX(ItemCounter3) for Item3)   
EN

回答 2

Stack Overflow用户

发布于 2013-08-29 18:48:18

我想你是在找这样的东西

代码语言:javascript
复制
SELECT OrderID, CustomerID, OrderDate, 
       COUNT(*) AS NumberOfItems, MAX(Quantity) 
       ItemWithMaxUnits, SUM(ItemPrice*ItemQuantity)  AS OrderTotalInMoney  
FROM dbo.Orders
WHERE Orders IN (Order1,Order2,Order3 )
GROUP BY OrderID, CustomerID, OrderDate

有关更多信息,请查看SQL aggregate functions

票数 0
EN

Stack Overflow用户

发布于 2013-08-30 00:02:57

我不确定你想要实现什么,但这可能会有所帮助:

代码语言:javascript
复制
Declare @OrdersParameter
Set @OrdersParameter = (SELECT distinct Orders FROM dbo.Orders)

SELECT Orders, COUNT(*) FROM dbo.Orders
WHERE Orders in (@OrdersParameter)
GROUP BY Orders
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18507932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档