【问题标题】:SQL SELECT DISTINCT for dynamic data用于动态数据的 SQL SELECT DISTINCT
【发布时间】:2015-06-30 07:35:02
【问题描述】:

如果可能,需要一点帮助: 得到的数据如下,但这是过滤的,INQUIRYID 列是我正在尝试使用的,因为这是预订的查询号:

最后一列是我尝试使用 Excel 2007 计算的夜数。

INQ_DATE 列是酒店住宿的预订天数,在这种情况下,此查询为 2 晚。每个预订的行数都等于他们入住的晚数。

第二次预订如下:

7 lines - INQUIRYID = 9501

此预订为 7 晚,与以上第一个 2 晚不同。

在最后的列中,我需要根据过滤后的数据计算夜数。

涉及两个表:

BOOKING_INQUIRY
BOOKING_INQUIRY_ROOMS
Linked on : INQUIRYID

到目前为止我有:

在 SQL 中(有效但指定了特定的 INQUIRYID)

SELECT DISTINCT COUNT(INQUIRYID)FROM dbo.BOOKING_INQUIRY_ROOMS
WHERE 
inquiryid = '9501'

这会返回 7

我知道我快到了,需要调整 WHERE 子句,可能是一个动态参数,但我无法终生如何......

谁能帮帮我?

谢谢,

马特

【问题讨论】:

  • 简而言之,您是否正在寻找不同的inquiryID 计数?如果是这样,您将需要在计数中使用 distinct。 SELECT COUNT(DISTINCT INQUIRYID)FROM dbo.BOOKING_INQUIRY_ROOMS WHERE inquiryid = '9501'
  • 我认为他宁愿在一个 SELECT 中计算每次预订的晚数。
  • 这是正确的,我需要计算每个预订中的所有晚数,其中预订 ID 不同,有些预订可能 2 晚,有些 3,有些 4 等。每个预订的行数预订在 Excel 表中描述了住宿天数。我正在使用过滤器来过滤掉每个预订,使用 INQUIRYID 列。

标签: sql-server excel excel-formula filtering


【解决方案1】:
SELECT
  inquiryid,
  COUNT(*) as Nights 
FROM 
  dbo.BOOKING_INQUIRY_ROOMS
GROUP BY
  inquiryid

只需使用 GROUP BY...

【讨论】:

  • 感谢您的cmets,我今天会尝试这些并反馈给您。
  • 我使用了 group by 子句,并将其硬塞到我的 SS 中,紧挨着最后两列的其他数据。很好的答案,干杯
猜你喜欢
  • 2011-07-11
  • 2012-03-07
  • 1970-01-01
  • 1970-01-01
  • 2022-01-25
  • 2012-05-10
  • 2018-04-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多