1

私は2つのテーブルを持っています

    table1                   table2
    numID|counts|date        numID|net|tax|date
    1        1   xy            1    2   1   xy
    2        1   xy            2    2   1   xy
    3        1   xy            3    2   1   xy
    3        1   xy            4    1   1   xy
    4        0   xy    

したがって、同じ日付、numID、counts=1 を持つ行の table2 で合計 (正味 + 税) する必要があります。where句を実行しようとしましたが、numID 3が2回追加されますが、合計する必要があるのは1回だけです。numID 4 は counts=0 であるため、省略してください。私の選択:

SELECT 
    SUM(`net`+`tax`) 
FROM table1 AS d, `table2` AS c
WHERE d.date=c.date
    AND d.numID=c.numID
    AND `it_counts` = 1

これは numID 3 を 2 回追加しますが、それはDISTINCT.

4

1 に答える 1

0

exists相関クエリを使用してこのステートメントを書き直してみてください。

SELECT
    SUM(`net`+`tax`) 
FROM `table2` AS c
WHERE EXISTS (
    SELECT 1 FROM table1 AS d
    WHERE d.date=c.date
        AND d.numID=c.numID
        AND `it_counts` = 1)
于 2012-05-11T00:12:43.647 に答える