在SQL

时间:2016-10-29 22:33:56

标签: sql postgresql

我有一个名为TABLE1的表,有3列:month distinct_count,cobrand_id。

我想在distinct_count列中调用与month和cobrand_id列匹配的行。

表1:

enter image description here

例如,我在另一个名为Table2的表上使用以下查询,该表与Table1有一些重叠的字段:

SELECT to_char(transaction_date, 'YYYY-MM') as month, 
cobrand_id, 
Amount, 
CASE WHEN month = Table1.month and cobrand_id = Table2.cobrand_id 
THEN #return matching distinct_count value from Table 1# as newval

FROM Table2
WHERE DESCRIPTION iLIKE '%Criteria%';

我需要帮助计算newval。

逻辑上,newval应该从TABLE1中的distinct_count列返回与月份和时间匹配的值。从TABLE2上面的查询返回的cobrand_id值。

编辑:TABLE2没有名为distinct_count的列。我想在我的查询中将每行的值distinct_count拉为newval,其中month& cobrand_id匹配TABLE1和TABLE2。

1 个答案:

答案 0 :(得分:1)

根据你的sql句子,因为你只提到了3列,但你使用的是'transaction_date''DESCRIPTION''Amount'

 SELECT 
    to_char(Table2.transaction_date, 'YYYY-MM') as month, 
    Table2.cobrand_id, 
    Table2.Amount,
    Table1.distinct_count as newval
 FROM
     Table2
     inner join Table1
         on to_char(Table2.transaction_date, 'YYYY-MM') = Table1.month
         and Table2.cobrant_id = Table1.cobrant_id
WHERE
    Table2.DESCRIPTION LIKE '%Criteria%';