我有两个具有df_new = df.copy()
list_df_new_index = list(df_new.index)
for index in list_df_new_index:
cntr, prod = index
df_new.loc[cntr, prod] = df_new.loc[cntr, prod]*df_scale.loc[prod]
print(df_new)
0
foo A 0.000000
B 0.001700
C 3.745981
bar A 0.000000
B 0.167234
C 1.906900
关系的数据库表,如下所示
CaseMaster(caseId,case#,标题等)
CaseStages(stageId,caseId,stageName,....,律师名...)
以上关系意味着每种情况都经历多个阶段(初审,撤销,执行等)。在每个阶段,他们可以是不同的律师,也可以没有律师。我想列出所有阶段都没有律师的所有案件(不是阶段)。
我尝试使用caseId上的1 to M
语句来执行此操作,但不知道如何仅提取那些没有律师的案件。
答案 0 :(得分:1)
您可以使用WHERE NOT EXISTS
编写查询,如下所示。
SELECT cm.caseid,
cm.[case#],
cm.title
FROM casemaster cm
WHERE NOT EXISTS (SELECT 1
FROM casestages cs
WHERE cs.caseid = cm.caseid
AND cs.lawyername IS NOT NULL)
如果您真的想使用GROUP BY
进行操作,可以按照以下步骤进行操作。
select cm.caseid,cm.title
from CaseMaster cm
inner join CaseStages cs on cs.caseid=cm.caseid
group by cm.caseid,cm.title
having sum(case when cs.lawyerName is null then 0 else 1 end)=0
答案 1 :(得分:0)
禁止使用
select t1.* from casemaster t1
where caseid not in ( select caseid from casestages t2 where
t2.laywername is not null)
答案 2 :(得分:0)
在查询中使用“ distinct”关键字,以避免重复。