Beispiel zu CTE und Rank


Mit CTE und RANK kann man ab SQL Server 2005 eine Liste von Daten ausgeben lassen, welche je Gruppe z.B. den höchsten Wert ausgibt.

In diesem Beispiel habe ich den Postleitzahlenstamm der Schweiz. Hier gibt es mit der gleichen PLZ x Bezeichungen welche mit einer Priorität versehen sind. Ein Beispiel:

1000    Lausanne     00
1000    Lausanne 1   01
1000    Lausanne 2   02
1000    Lausanne 3   03

Ich möchte jetzt eine Liste von PLZ sehen, worin aber jede PLZ nur einmal vor kommt und zwar jene mit der tiefsten Prio.
Das geht wie folgt:


WITH PostCodes AS
(
SELECT PostCode,city,
RANK() OVER( PARTITION BY PostCode ORDER BY Priority) AS rn
FROM PostCodeDirectory )
SELECT *
FROM PostCodes
WHERE rn=1

Mit PARTITION BY  gebe ich an, nach was "gruppiert" werden soll und dahinter die Reihenfolge(könnte z.B. auch der Umsatz, letzter Verkauf,...) sein.
Mit dem Filterauf rn=1 bekomme ich dann pro Gruppe nur einen Datensatz.

1000    Lausanne
1001    Lausanne
1002    Lausanne
1003    Lausanne
1004    Lausanne


author: Schmid | posted @ Monday, October 05, 2009 2:06 PM | Feedback (0)

Suche nach dem optimalen Twitter-Client, Anforderungen und Erfahrungsbericht


Seit einigen Wochen befasse ich mich mit Twitter und dessen Einsatzmöglichkeiten im Geschäftsfeld. Mit Bezug zu myfactory, einer Business Software mit CRM, ERP, PPS, FMS,...  mache ich mir vorallem Gedanken ob Twitter auch in einem B2B-Umfeld Sinn machen kann/wird.
Aktuell bin ich der Meinung, dass man zumindest lesend dabei sein sollte um vorallem Meldungen zur eigenen Firma/Produkte mitzubekommen.
Gerade im B2B-Umfeld kann man nicht jeden Tag Aktionen etc. über Twitter bekannt geben. Doch damit man Twitter gut einsetzen kann, braucht es einen guten Twitter-Client. Aktuell bin ich an der Prüfung von TweetDeck(TD) und Echofon(EF) als lokale Clients und die webbassierten CoTweet(CT) und HootSuite(HS). Den optimalen habe ich bis jetzt noch nicht gefunden, hier aus meiner Sicht die Anforderungen und kurze Bewertungen für einen firmenlastigen Client.

Multi-Accounts:
Da ich z.B. einen privaten Account und mehrere geschäftliche Twitter-Accounts habe, wäre die Multi-Account-Verwaltung schon mal die erste Anforderung. Das bieten diese 4 Clients alle an. CT hat es am Besten umgesetzt, weil ich in einer Ansicht/Spalte alle Meldungen der Twitter-Accounts sehen kann und im Bild des Schreibers ein kleines Icon meiner Accounts sehe und so sichtbar ist, über welchen Account die Meldung kam.

Bei den anderen Clients hat man entweder mehrere Spalten oder muss die Ansicht umstellen was beides vom Platz/Zeit her nicht optimal ist.

Versand:
Beim Versand gibt es für mich eher kleiner Unterschiede. Vorteil der webbasierten Clients (CT,HS) ist, dass man den Versand Zeitgesteuert machen kann. Dass man bei TD und CT die URL-Shortener z.B. auf bit.ly mit Statistikfunktion umstellen kann, ist hier ein Vorteil.

Suche:
Weil ich z.B. bei Tags wie #ERP oder #SaaS nicht all die Meldungen aus den USA sehen möchte, erwarte ich auch einen Sprachen-Filter, wie es die Twitter-eigene Suche mitbringt. Zwar kann dieses Ergebnis als RSS-Feed abonieren werden, ein Client müsste aber eine Filterfunktion auf ungewünschte Accounts mitbringen. Wenn also jemand auf #SaaS immer nur Werbung versendet, möchte ich diesen ausschliessen können. Aus Platzgründen dürffen/sollten alle Suchfilter in einem Bereich(Spalte,Block) stehen. Gerade was Sprach- und Account-Filter betrifft konnte ich bei keinem dieser 4 Clients etwas finden.

Lesen:
Bei EF werden die neuen Meldungen hervorgehoben(wenn man das Fenster vom Firefox-Addon öffnet) und beim Schliessen automatisch als gelesen markiert. Da ich vom Google-Reader gewohnt bin, die RSS-Meldungen einfach durchzuscrollen und dass dann die Meldungen automatisch als gelesen markiert werden, ist das meine bevorzugte Ansicht. Bei TD kann man die Tweets manuell als gelesen markieren und ausblenden lassen (jeweils 2 Clicks nötig in jeder Spalte) was auch noch ok ist. Bei CT und HS wurde das stark vernachlässigt(oder von mir nicht gefunden). Einfach mal bis zum nächsten Seitenupdate ein Symbol anzeigen ist nur brauchbar, wenn jemand die Seite die ganze Zeit offen hat und verfolgt oder sich sehr unregelmässig anmeldet. Und immer  zu prüfen, ob ich jetzt den letzten Tweet schon gelesen habe, ist viel zu aufwändig.
Eine Autolesen-Funktion wie im Google-Reader wäre hier einfach Pflicht.

Fazit:
Diese Anforderungen sind bewusst nur auf PC-Clients bezogen und nicht auf mobile Geräte.
Ich konnte bei diesen 4 Clients keinen finden, welcher vorallem bei der Suche und beim Lesen meinen Erwartungen entspricht. Vieleicht werden diese Punkte ja bald umgesetzt und dann kann man Twitter auch im Geschäftsumfeld mit fertigen(keine Eigenentwicklungen) Clients nutzen.

Falls ich bei einem dieser Clients eine bemängelte Funktion nicht gesehen habe, bin ich über eine Info dankbar. Wenn ich den Super-Client noch gar nicht gefunden habe oder auch Tipps und Eure Erfahrungen/Vorgehensweisen bitte als Kommentar hier hinterlassen.

Vieleicht trifft man ja auch den einen oder anderen mal bei Twitter. :-)

Mein privater Account:
http://www.twitter.com/chmav

Falls hier jemand an myfactory oder allgemein ERP/CRM-Software Interesse hat:
http://www.twitter.com/myfactory_ch



author: Schmid | posted @ Saturday, October 03, 2009 10:55 AM | Feedback (0)

Kalenderwoche in SQL Server bestimmen


In diesem Blogeintrag wird für SQL Server 2005 eine ISO-Week-Funktion aufgezeigt und für 2008er-Server die Lösung über DatePart.

http://blogs.lessthandot.com/index.php/DataMgmt/DataDesign/iso-week-in-sql-server

author: Schmid | posted @ Wednesday, August 26, 2009 11:00 AM | Feedback (0)

DeepZoom programmierung


Für eine Artikelbildansicht mit Zoom-Funktion sollen die Bilder mit der DeepZoom-Technologie angezeigt werden. Die Originaldateien sind sehr gross und da dürfte das genau das Richtige sein.
Die Dateien werden direkt per FTP auf den Server geladen und sollen danach in einem seperaten Task aufbereitet werden.

Das Erzeugen der Bilder wird hier sehr gut beschrieben:
http://blogs.msdn.com/olivers/archive/2009/04/02/silverlight-2-deep-zooms-automatisch-generieren.aspx

Der Teil mit CollectionCreator wird in diesem Fall weggelassen.

Die Anzeige wird dann über das MultiScaleImage gemacht und dabei die Source entsprechend ausgetauscht.
Dazu sind diese Einträge sehr interessant:
http://blogs.msdn.com/olivers/archive/2008/05/04/deep-zoom-composer-und-das-multiscaleimage.aspx
http://blogs.msdn.com/jaimer/archive/2008/03/31/a-deepzoom-primer-explained-and-coded.aspx

author: Schmid | posted @ Saturday, August 15, 2009 2:46 PM | Feedback (0)

Forum zu Silverlight/Expression Blend etc.


Unter http://yourexpression.de/ gibt es ein deutsches Forum/Wissendatenbank zu Silverlight, Expression Blend und die weiteren Expression-Programme.

author: Schmid | posted @ Tuesday, August 04, 2009 10:00 AM | Feedback (0)

RDP-Client in IE7/IE8 auf WinXP


Ich hatte gerade grössere Probleme, auf meinem Netbook mit WinXP per SSL VPN auf einen PC zuzugreiffen. Mit Vista funktioniert es super, bei WinXP kam im IE immer die Meldung, dass ein Addon nicht aktiv sei. Wenn ich dann aber die Addons angeschaut habe, war alles aktiv.

Die Lösung dazu gibt es hier:
http://blog.mypostup.com/2008/08/11/remote-desktop-and-xp-sp3-ie-7-workaround/

Bei mir reichte es auch aus, wenn ich unter HKCU\Software\Microsoft\Windows\CurrentVersion\Ext\Settings\
den Eintrag {9059f30f-4eb1-4bd2-9fdc-36f43a218f4a} rausgelöscht habe.

author: Schmid | posted @ Friday, July 24, 2009 10:02 PM | Feedback (0)

Welcher WorkerProzess gehört zu welchem AppPool die 2.


Mit Windows 2008-Server geht die früher gemeldete Funktion nicht mehr. Neu kann man das wie folgt machen:

%windir%\system32\inetsrv\appcmd.exe list wp

Dabei sieht man, welcher WP-Prozess(aus dem Taskmanager sieht man z.B. die Auslastung) zu welchem AppPool gehört.

author: Schmid | posted @ Tuesday, June 16, 2009 10:34 AM | Feedback (0)

Nummerieren von SQL-Abfragen mit ROW_NUMBER()


Wie man mit ROW_NUMBER() eine fortlaufende Nummerierung in seine Abfrage bringt, wird in diesem Posting sehr gut beschrieben.

author: Schmid | posted @ Tuesday, May 26, 2009 10:24 AM | Feedback (0)

einfaches aber super Video-Schnittprogramm


Um kleine Videos von der Digi-Cam zusammenzuschneiden um der Verwandtschaft online bereitstellen zu können, habe ich vor einiger Zeit schon lange gesucht und dann MPEG Streamclip entdeckt. Beim HD-Crash anfangs Jahr habe ich dieses Programm verloren und leider den Namen nicht gemerkt.
Jetzt habe ich es endlich wieder gefunden und möchte hiermit ein späteres Verschwinden verhinden.

Link zu MPEG Streamclip

author: Schmid | posted @ Wednesday, January 28, 2009 11:37 PM | Feedback (0)

SQL-Abfrage analysieren


Mit
SET STATISTICS TIME ON
Go
SET STATISTICS IO ON;

kann man sich diverse Info(Ausführungszeit,Leservorgänge,...) zu einer Abfrage anzeigen lassen.

Man kann dieses Einstellung im SQL Managament Studio/Query Analyzer auch direkt in den Abfrageoptionen aktivieren.

author: Schmid | posted @ Thursday, January 15, 2009 8:34 AM | Feedback (0)