存在条件加入

时间:2016-12-15 15:49:46

标签: sql sql-server join

我需要基于三列密钥堆栈将两个表连接在一起。问题是有时其中一个关键列在另一个表中被翻译和映射不同。我将尝试使用代码示例我的问题:

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中不存在Table3Pepsi 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存在语法但无法使其工作。

1 个答案:

答案 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