我需要基于三列密钥堆栈将两个表连接在一起。问题是有时其中一个关键列在另一个表中被翻译和映射不同。我将尝试使用代码示例我的问题:
select t1.TQ
from table1 t1
left join table2 t2 on t1.comp_cd = t2.comp_cd and t1.plcy_frm = t2.plcy_frm
and t1.val_cd = t2.val_cd
“comp_cd”和“plcy_frm”列很好,但问题出在val_cd上。有时,table2中的val_cd没有正确映射到table1,必须通过第三个表table3。表3结构如下:
Val_Cd Mapped_Val_Cd
A123 A564
所以 - >如果Mapped_Val_Cd
中存在Table3
值,我需要加入Val_Cd
值,但Table2
Val_Cd
中不存在Table3
时Pepsi 500
Coke 358
Dr. pepper 254
Sprite 204
Coca cola 159
7 up 140
Mountain dew 137
Diet coke 58
Mtn. dew 50
加入@NgModule({
imports: [
HttpModule,
InMemoryWebApiModule.forRoot(InMemoryBackendService),
...
],
。
我希望这是有道理的 - 我已经尝试了Case存在语法但无法使其工作。
答案 0 :(得分:1)
假设 String path ="C:\\Users\\GrantAJ\\Documents\\Comment Matrix";
File folder = new File(path);'File[] listOfFiles= folder.listFiles();
////// filters file objects in java to populate jcombobox with just the name /////
List<String> fileNames = new ArrayList<String>();
for(File files1: listOfFiles){
if(files1.isFile()){
fileNames.add(files1.getName());
}else if (files1.isDirectory())
{ System.out.print("Directory : );
}
final JComboBox jList1 = new JComboBox(listOfFiles);
jList1.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent ae)
{
JOptionPane.showMessageDialog(null, files1.getName());
}
});
TableColumn col = jTable_Files_Name.getColumnModel().getColumn(4);
col.setCellEditor(new DefaultCellEditor(jList1));
}
Object[] row = new Object[6];
// fill the rows and columns
row[0] = file.getName();
row[1] = file.getAbsolutePath();
row[2]= dt;
row[3]=sb.toString();
row[4]=files1.getName();
row[5]=hostname;
model.addRow(new Object []{row[0],row[1],row[2],row[3],"",row[5]});
}
}catch(Exception e){e.printStackTrace();}
中没有重复项,您可以table3
,然后在left join
子句中选择所需的值:
on