0

我正在考虑两个表中的以下列,其中 clicks_ 列是空的,应该填充从 mwhen 和 mwho 列中学习的数据。加入应该在 mwho 和 user_id 上。

学生

user_id、clicks_jan、clicks_feb、clicks_mar、clicks_apr

用法

mwho, mwhen

我的问题:

  1. 我是否需要一个 select 语句,或者我可以立即从“更新学生”移动到设置 (...) 以更新列?
  2. 当我要求它同时从两个表中提取信息以执行计算时,SQL 会抱怨 - 至少,当我声明“来自学生,使用情况”时它会抱怨。是否有明确的解决方法来使用另一个表的修改信息更新一个表?

到目前为止我所拥有的内容的精简版。(由于栏目更新都是相似的,我这里只展示一个。)

update students

set clicks_jan = 

    sum(
        case 
        when cast(strftime('%j', mwhen) as integer) < 32 then 1
        else 0 end)
from students, usage 
inner join students.user_id = usage.mwho;

任何帮助深表感谢。

4

1 回答 1

1

我不完全是你正在尝试的,但这是我的尝试:

UPDATE students set
  Clicks_jan = (SELECT case when cast(strftime('%j',mwhen) AS integer) < 32
                            then 1 else 0 end
                FROM usage
                WHERE mwho=student.user_id);
于 2012-08-04T02:22:57.527 回答