1
現金支払いと同じ日付の取引を選択する必要があります。 の支払いは1つしかありません(結果セットから14を省略する必要があります) 正しい結果は12と13のみです。2つ目のテーブルでcount = 1のテーブルから選択してください
Table2 Table1
num | date | data | total num | payment | date
12 xy abc 2.5 12 cash xy
13 xy cbc 2.1 13 cash xy
14 xy acc 2.3 14 visa xy
19 xy def 2.0 14 cash xy
27 xy fgh 1.3 19 visa xy
27 mc xy
このようなものは、結果セットでは14になりますが、14は省略してください。 (tombomによる)正しい答えをsumarizeする
SELECT num, data
FROM Table2
WHERE num IN
(
SELECT num FROM `Table1`
WHERE payment = 'cash'
GROUP BY `num`
HAVING (COUNT(`num`) = 1 )
)
:
SELECT t2.num, t2.data
FROM Table1 as t1
INNER JOIN Table2 as t2 ON t1.num = t2.num
AND t1.date = 'xy'
GROUP BY t1.num
HAVING GROUP_CONCAT(t1.payment) = 'cash'
ありがとう!
何とか私はまだ2行の結果を取得します。この場合、私はまだnum 14になります。なぜなら、支払いは「現金」は他の支払いなしですでに結果になっているからです。 – phpJs
@phpJames私の答えを編集し、更新されたクエリで試してみてください。 – fancyPants
私はまだ2回の支払いで行を取得します。 私は今のところ日付を省略することができます簡略化 – phpJs