求大神SQL语句怎么写,谢谢

求大神SQL语句怎么写:按照某一个条件从MEASURE表查询出来的数据中逐条取字段danhao1,和PRINTBILL表中的danhao字段匹配(danhao1=danhao),从而取出PRINTBILL表printtime字段的值,和MEASURE表中查询出的danhao1中的值共同更新到MEASURE表的danhao、printtime字段中去。

第1个回答  2013-07-03

    把你这2个表的关系 描述一下吧, 是否1对多的?

    你是不是要把一个表的值 求和,然后更新到另一个表中去 ?

第2个回答  2013-07-03
UPDATE A SET A.printtime=B.printtime ,A.danhao=A.danhao1
 FROM MEASURE A INNER JOIN PRINTBILL B ON danhao1=danhao

追问

要按照某一个条件从MEASURE表查询出来的数据中逐条取字段danhao1

追答

为什么要 逐条取呢?
UPDATE A SET A.printtime=B.printtime ,A.danhao=A.danhao1
FROM MEASURE A INNER JOIN PRINTBILL B ON danhao1=danhao
WHERE A.danhao1 in ( 这里是符合条件的 danhao1)
一般数据库设计的话 都尽量避免 逐条 取数据, 如果实在没办法需要用的话 就要用到游标了。
你这个需求描述不清楚,没办法给你具体的作答

追问

UPDATE A SET A.printtime=B.printtime ,A.danhao=A.danhao1
FROM MEASURE A INNER JOIN PRINTBILL B ON danhao1=danhao
WHERE A.danhao1 in (

select A.danhao1 from A  where A.operatype = 6

)

以上语句报错:

追答UPDATE A SET A.printtime=B.printtime ,A.danhao=A.danhao1
FROM MEASURE A INNER JOIN PRINTBILL B ON danhao1=danhao
WHERE A.danhao1 in (
select MEASURE.danhao1 from MEASURE where MEASURE.operatype = 6
)

本回答被提问者采纳
相似回答