Sql 选择下一个可用日期并连接到另一个表
我正在尝试从一个表中选择下一个可用日期,并将其链接到另一个表 主表是一个产品列表,我有价格大小等列。在第二个表中,我有产品ID、日期列表以及产品是否可用。日期是从过去的某一点到未来的某一点 我想筛选日期,使其大于或等于今天,并显示为可用。然后使用产品信息将下一个可用日期添加到我的主数据集中 表1:Sql 选择下一个可用日期并连接到另一个表,sql,Sql,我正在尝试从一个表中选择下一个可用日期,并将其链接到另一个表 主表是一个产品列表,我有价格大小等列。在第二个表中,我有产品ID、日期列表以及产品是否可用。日期是从过去的某一点到未来的某一点 我想筛选日期,使其大于或等于今天,并显示为可用。然后使用产品信息将下一个可用日期添加到我的主数据集中 表1: 产品ID、产品名称、价格、尺寸 表2: ProductID,日期,可用(0/1) 我尝试将表2左键联接到表1,并使用WHERE to set dates>=将日期设置为今天,并可供1使用 正如其他问题
产品ID、产品名称、价格、尺寸
表2:
ProductID,日期,可用(0/1)
我尝试将表2左键联接到表1,并使用WHERE to set dates>=将日期设置为今天,并可供1使用
正如其他问题回答所建议的那样,我尝试了嵌套的SELECT语句,但结果是,每个不正确的产品ID都链接了相同的日期
非常感谢您的指导。请尝试以下示例 假设第一个表是包含以下列的产品详细信息 ProductID、产品名称、价格、大小 另一个表是以下列的可用产品 ProductID,日期,可用 请查找查询
select pd.ProductID,pd.ProductName,pd.Price,pd.Size from Product_Details pd, Available_products pa where pa.ProductID=pd.ProductID and DATE(pa.Dates) >= DATE(NOW()) and pa.Available=1;
这个答案与Raj Paliwal的答案类似,但使用了当前的SQL Server语法 产品表:产品ID、产品名称、价格、大小(主键:产品ID) ProductDates表格:ProductId,DateStart,IsAvailable(主键:ProductId,DateStart)
注意:在现实世界中,价格可能还与日期和可用性有关。因此,该列将位于ProductDates表中。示例数据、所需结果和适当的数据库标记都会有所帮助!谢谢你的帮助。我已经应用了上述内容,但问题是我只想看到每个产品ID的第一个可用日期行。例如:ID100 date 28/10/19、ID200 28/10/19、ID300 3/11/19。我不想看到所有可用的日期。我如何才能在未来的第一个可用日期中提取?谢谢,事实上,我想我已经在日期中添加了一个MIN子句:选择a.ProductID,MIN(B.StartDate)作为[date],B.IsAvailable FROM#Product AS a.ProductID=B.ProductID,其中StartDate>=convert(date,getdate())和Available=1 groupby a.PropertyID,B.I可用
SELECT A.ProductId,
A.ProductName,
A.Price,
A.Size,
B.DateStart,
B.IsAvailable
FROM #Product as A
INNER JOIN #ProductDates as B
ON A.ProductId = B.ProductId
WHERE DateStart >= convert(date, getdate())
AND IsAvailable = 1
-- Output (where current date is 2019-10-25):
-- ProductId ProductName Price Size DateStart IsAvailable
-- ----------- ----------- ------- ------- ----------- -----------
-- 100 Sample 100 Product 59.00 16 2019-10-28 1
-- 100 Sample 100 Product 59.00 16 2019-11-03 1
-- 100 Sample 100 Product 59.00 16 2019-11-05 1
-- 100 Sample 100 Product 59.00 16 2019-11-06 1
-- 100 Sample 100 Product 59.00 16 2019-11-11 1
-- 100 Sample 100 Product 59.00 16 2019-11-12 1
-- 100 Sample 100 Product 59.00 16 2019-11-13 1
-- 200 Sample 200 Product 12.00 8 2019-10-28 1
-- 200 Sample 200 Product 12.00 8 2019-11-03 1
-- 200 Sample 200 Product 12.00 8 2019-11-04 1
-- 200 Sample 200 Product 12.00 8 2019-11-05 1
-- 200 Sample 200 Product 12.00 8 2019-11-06 1
-- 200 Sample 200 Product 12.00 8 2019-11-11 1
-- 200 Sample 200 Product 12.00 8 2019-11-12 1
-- 300 Sample 300 Product 44.23 21.5 2019-11-03 1
-- 300 Sample 300 Product 44.23 21.5 2019-11-04 1
-- 300 Sample 300 Product 44.23 21.5 2019-11-06 1
-- 300 Sample 300 Product 44.23 21.5 2019-11-11 1
-- 300 Sample 300 Product 44.23 21.5 2019-11-12 1