我有一张这样的表,
Country | Store | Stock | Display | Designation | Date
--------------- | --------- | ----- | ------- | -------------| ----------
USA | USD | 10 | Yes | Merchandiser | 2017-07-16
USA | USD | 20 | Yes | Merchandiser | 2017-07-16
USA | USD | 30 | Yes | Promoter | 2017-07-16
USA | USD | 40 | Yes | Promoter | 2017-07-16
我想成为这样的结果
Country | Store | Stock | Display | Designation | Date
--------------- | --------- | ----- | ------- | -------------| ----------
USA | USD | 30 | Yes | Promoter | 2017-07-16
USA | USD | 40 | Yes | Promoter | 2017-07-16
条件是日期是商品和促销商中的一些只获得启动记录。如果同一日期获得启动数据,请动态检查日期。 我怎样才能做到这一点?
答案 0 :(得分:1)
这应该有效:
SELECT DISTINCT t1.*
FROM table t1
JOIN table t2
ON t2.Designation = 'Merchandiser'
AND t2.Date = t1.Date
WHERE t1.Designation = 'Promoter'
当然,您需要将table
替换为实际的表名。我们的想法是,您可以将表格内部连接到自身。
答案 1 :(得分:1)
很难理解你在寻找什么。你的病情很难读。英语没有多大意义,但我理解英语不是你的第一语言。
此查询将返回在同一日期具有Merchandiser记录的任何Promoter记录。我认为这就是你要找的东西。
SELECT *
FROM Table t1
WHERE t1.Designation = 'Promoter'
AND EXISTS (
SELECT 1
FROM Table t2
WHERE t2.Date = t1.Date
AND t2.Designation = 'Merchandiser'
)
答案 2 :(得分:0)
SELECT *
FROM table
WHERE Designation='Promoter' AND Date='2017-07-16'