Намокрям краката си в SQL, особено поради проблема, върху който работя сега, знам как бих изпълнил задачата, използвайки референтна формула Countif в Excel, но тъй като имам работа с близо 1 милион записа, Excel поддържа бомбардираха ме и SQL изглеждаше като по-ефективно средство за изпълнение на задачата.
Фон:
По принцип имам "обобщена" таблица като тази:
ID_summary(ID_num, exist_2009, exist_2010, exist_2011, exist_2012)
След това имам 4 таблици, всяка от които съответства на 2009, 2010, 2011 и 2012 г. само с две колони във всяка таблица ID_num и дата.
2009(ID_num,date)
Таблицата ID_summary има изчерпателен списък на всички уникални идентификатори, които съществуват в четиригодишните таблици. Създадох този списък чрез съюзи на четиригодишната таблица.
Проблемът:
Искам да напиша заявка за актуализиране (?), за да попълня таблицата ID_summary с „TRUE“ или „1“ за всяка колона „exists_20XX“, за всеки запис, ако идентификационният номер се появява в съответните таблици за години.
Например, ако ID 002 се появява само през 2009 и 2012 г., тогава редът за ID 002 в обобщената таблица трябва да изглежда така
ID_summary(ID_num, exist_2009, exist_2010, exist_2011, exist_2012)
ID_002,TRUE,FALSE,FALSE,TRUE
Правил съм подобни основни заявки, за да направя известно почистване на данни и съм постигнал успешни резултати, но винаги е било просто препращане към други полета в същата таблица, за да се определи дали едно поле трябва да бъде прекодирано.
Използвам MS Access 2010.
Всяка помощ е високо ценена!