plné vnější připojení v ms access
<p>mám dva seznamy zaměstnanců:</p><pre><code>list a: staffid supervisor  0001234 null 0001235 0001234 0001237 0001234 0001239 0001237 </code></pre><p>a</p><pre><code>list b: staffid supervisor  0001234 null 0001235 0001234 0001238 0001235 0001239 0001235 </code></pre><p>a potřebuji následující výstup:</p><pre><code>staffid supervisora supervisorb  0001234 null null 0001235 0001234 0001234 0001237 0001234 null 0001238 null 0001235 0001239 0001237 0001235 </code></pre><p>všimněte si, že id zaměstnanců ze seznamu a a seznamu b byly sloučeny do jediného, ​​neopakujícího se seznamu, a že jsem sloučil dva údaje vedoucího, které se nemusí shodovat mezi těmito dvěma seznamy.</p><p>dotaz nemusí být pěkný. v každém seznamu mám ~ 8 000 záznamů a spustím je nice. v případě potřeby jsem rád, že později udělám nějakou drobnou manipulaci s excelem.</p><p>chtěl jsem provést úplné připojení, ale v okně vlastností návrháře dotazů aplikace access na spojení mi mohu vybrat všechny z tabulky a a odpovídající z tabulky b, all z tabulky b a odpovídající z tabulky a, nebo pouze ty, které se shodují v obou a a b.</p><p>jsem si jist, že je to velmi jednoduché, ale velmi zřídka používám ms access.</p><p>zatím mám dva dotazy, které mi nedávají to, co chci. chtěl jsem je zkombinovat do plného vnějšího spojení, protože mi access nedá možnost, ale nejsem si jistý, jak:</p><pre><code>select lista.*, listb.* from lista left join listb on lista.[staffid] = listb.staffid; </code></pre><p>a</p><pre><code>select lista.*, listb.* from listb left join lista on listb.[staffid] = lista.staffid; </code></pre>
<p>naposledy, co jsem hrál s accessem, bylo, když byl rok 2003 žhavou novinkou, takže to nemusí být úplně přesné pro každý detail. co však musíte udělat, je přejít na návrháře dotazů, změnit pohled na „sql“ (tj. vstup surového textu) a poté chcete <code>union</code> své dva levé spojovací dotazy dohromady, např.</p><pre><code>select lista.*, listb.* from lista left join listb on lista.[staffid] = listb.staffid union select lista.*, listb.* from listb left join lista on listb.[staffid] = lista.staffid </code></pre>
Takže jste se ptali, jak zvládnout práci na násobku „úkolů“ najednou, ne? S výjimkou větvení.


Můžete mít více checkouts ze zdroje na lokálním počítači, suffixing název adresáře s názvem lístku, na kterém pracujete. Jen se ujistěte, aby se změny ve správném adresáři, v závislosti na úkolu ...


Směšování více úkolů v jedné pracovní kopii / commit může být velmi matoucí, zvláště pokud někdo potřebuje, aby svou práci zkontrolovat později. `SHOW FULL PROCESSLIST` Ukáže všechny připojené sezení a můžete vytáhnout seznam uživatelů z ní. Udělej si dvě tabulky. V jedné budeš mít kompletní info a ve druhé jen požadovaný výstup. Pokud budeš mít vše ve stejném formátu a seřazené, je to už snadné. nevim jak vypadaji ve windows takovi ti pruvodci next-next-finish, co se tvari ze umi vsechno a pritom nic ... , nepouzivam je, nicmene obecne staci proste otevrit nastaveni sitoveho adapteru, pridat TCP/IP protokol, dale protokol SMB pro sdileni prostredku v sitich windows a nakonec nastavit ve vlastnostech TCP/ip nejake rozumne adresy napriklad 192.169.0.X a masku na vsech pocitacich napriklad 255.255.255.0 ... to je cele. <p>pravděpodobně se dostáváte do radostí mysql myisam engine ...</p><p>v rámci mysql (nebo phpmyadmin) použijte příkazy repair table xyz znovu, opakovaně, na každé z vašich tabulek (nebo spíše tabulek souvisejících s vašimi podmínkami, protože to jsou ty, které znějí zkaženě), aby se zjistilo, zda to nic nevyřeší.</p><p>pokud selžou, existuje několik zdokumentovaných řešení:</p><p> <a href="http://www.google.com/search?q=recover+a+corrupt+mysql+database">http://www.google.com/search?q=recover+a+corrupt+mysql+database</a> </p><p>jakmile jsou věci obnoveny, spusťte příkazy optimalizovat tabulku xyz na každé tabulce a poté změňte motor databáze a každou tabulku, aby byla použita innodb. innodb poněkud neuspořádá katalog (zejména pokud upustíte databázi nebo velké tabulky), ale - pokud je kompatibilní s acid - je to o dost méně náchylné k chybám než myisam.</p> Case "123"Worksheets("list2").Visible = TrueCase "456" Worksheets("list3").Visible = TrueWorksheets("list5").Visible = True... Použito v malém rozsahu pro evidenci ve vlastním podnikání. Vyzkoušej, je trochu jiný než Acces ale nemá špatné možnosti. Pokud chceš ještě více funkcionality, můžeš zkusit lokální instalaci mysql serveru a LOB použít jako klienta. Často toto je provedeno pomocí [„Data Driven odběry“](https://msdn.microsoft.com/en-us/library/ms169673.aspx) , ale tato funkce je k dispozici pouze v některých SQL vydáních: Enterprise a Business Intelligence, ale ne v normě.


Takže existuje celá řada kreativních řešení. Ale nemám rád žádné z nich, a všechny vyžadují spravedlivý trochu práce mimo SSRS.


Mezi řešení, které jsem viděl, patří: Vytvoření odběr a potom zakázání nebo povolení SQL úlohu, kterou odešle předplatné (identifikovatelné podle GUID).


Vytvořte si .NET obálky exe zvládnout odeslání e-mailu. Je možné spustit dotaz nejprve zjistit, kolik se vrací řádky, a pak v případě potřeby generovat zprávu a zahrnout do e-mailu. Budete dělat NTLM / Kerberos / vyjednávání [SSPI výměny smyčku](http://msdn.microsoft.com/en-us/library/aa375403(VS.85).aspx) . Tam je aa plný vzorek na MSDN jak pro [klienta](http://msdn.microsoft.com/en-us/library/aa380536(VS.85).aspx) i [serveru](http://msdn.microsoft.com/en-us/library/aa380537(VS.85).aspx) . Aby bylo jasno: vy *ani* používat žádný druh přístupu LDAP explictily. Je LSA (Local Security Authority), který mluví s LDAP a určuje totožnost klienta. Pokud jste úspěšný v tom celý SSPI smyčky, ověření se podařilo už i identita klienta je *alread* ověřen proti LDAP. Pokud váš server potřebuje znát identitu klienta (např. Znát použití rname) je to načte z kontextu zabezpečení za následek SSPI smyčky pomocí [`QueryContextAttributes(..., SECPKG_ATTR_NAMES,...)`](http://msdn.microsoft.com/en-us/library/aa379328(VS.85).aspx)a načte uživatelské jméno ze [`SecPkgContext_Names`](http://msdn.microsoft.com/en-us/library/aa380089(VS.85).aspx)struktury. Vestavěný, nic. Ale psát něco sám je snadné.


Zkuste má proces, který dotazuje svůj katalog zpráv pro ty, které jsou starší než půl hodiny (nebo tak nějak). Dalo by se dokonce připojit k ReportServerTempDB aby zjistili, zda mají stále aktivní relace (v takovém případě je budete ignorovat trochu déle).


Poté, co jste je našli, je to snadné chytit, které pomocí rozhraní webových služeb a jejich odstranění z katalogu.


Ale ... Já bych vlastně se podívat na lepší způsob, jak poskytnout vlastní filtr, pomocí kódu. Jistě byste mohli poskytnout filtr jako parametr, a použít kód VB v rámci zprávy převést to, co uživatel zadá do něčeho, který by mohl být vyhodnocen pro každý řádek.


Okrást