我有下表:
(row) | date | transaction | articleno | salesamount
==============================================================
(1) | 2017-01-01 | 1 | A | 1.0
(2) | 2017-01-01 | 1 | B | 2.0
(3) | 2017-01-01 | 1 | C | 2.0
(4) | 2017-01-01 | 1 | null | 0.0
--------------------------------------------------------------
(5) | 2017-01-02 | 2 | X | 1.0
(6) | 2017-01-02 | 2 | Y | 2.0
...
我想创建一个SQL语句,该语句遍历我的表并查找 baskets / groups (由date
和transaction
组合标识),两者都有
salesamount
为> 1.0
的行(例如第2行和第3行) AND articleno
为null
的另一行(例如第4行)在同一个篮子里(不仅在一行)。我需要回馈符合上述条件的date/transaction
组合。在上面的示例表中,第一组是相关的,应返回2017-01-01 & 1
。
我尝试在having
之后使用group by date, transaction
条件,但这似乎无法使用having
只能用于引用{的列的列或聚合{1}}条款)。
我该怎么做?我需要内部SQL吗?
答案 0 :(得分:3)
试试这个:
SELECT t1.* FROM (
SELECT date,transaction
FROM yourtable
WHERE salesamount > 1.0
GROUP BY date,transaction
) t1
INNER JOIN (
SELECT date,transaction
FROM yourtable
WHERE articleno IS NULL
GROUP BY date,transaction
) t2
ON t1.date = t2.date AND t1.transaction = t2.transaction
答案 1 :(得分:0)
$_SESSION['path']
答案 2 :(得分:0)
请尝试以下查询(假定的Oracle数据库)。
{{1}}