<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>SQL Server (και άλλες databases)</title><link>https://www.dotnetzone.gr:443/cs/forums/28/ShowForum.aspx</link><description>Θέματα που αφορούν τον SQL Server (7.0, 2000, 2005) αλλά και Oracle, Access, DB2, MySQL, κλπ.</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Re: Running Totals ή πως να κρατάμε το λογιστή ευτυχισμένο...</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/177.aspx</link><pubDate>Tue, 14 Sep 2004 22:51:43 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:177</guid><dc:creator>Μάριος Μαργαρίτης</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/177.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=177</wfw:commentRss><description>Μόλις το χρησιμοποίησα για να κάνω custom αρίθμιση καθώς τα ID's του πίνακα δεν ήταν καλά για τους χρήστες.&lt;br /&gt;&lt;br /&gt;Thanx</description></item><item><title>Re: Running Totals ή πως να κρατάμε το λογιστή ευτυχισμένο...</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/81.aspx</link><pubDate>Fri, 09 Jul 2004 00:17:43 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:81</guid><dc:creator>PhilipKalogero</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/81.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=81</wfw:commentRss><description>Very good George!! Πάει και σφαίρα.&lt;img src="/Forums/emoticons/emotion-21.gif" alt="Yes" /&gt;</description></item><item><title>Re: Running Totals ή πως να κρατάμε το λογιστή ευτυχισμένο...</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/78.aspx</link><pubDate>Tue, 06 Jul 2004 21:46:44 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:78</guid><dc:creator>raPhaeL</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/78.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=78</wfw:commentRss><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;Hello George ,&lt;br /&gt;&lt;br /&gt;Ενας τρόπος ακομα :&lt;br /&gt;&lt;br /&gt;SELECT&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Trn_Date,&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Rt.Trn_Amount,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(SELECT SUM(Trn_Amount) FROM Transactions WHERE Trn_ID &amp;lt;= Rt.Trn_ID) Trn_RunningTotal&lt;br /&gt;FROM&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Transactions Rt&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;</description></item><item><title>Re: Running Totals ή πως να κρατάμε το λογιστή ευτυχισμένο...</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/60.aspx</link><pubDate>Mon, 21 Jun 2004 00:53:12 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:60</guid><dc:creator>patrick</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/60.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=60</wfw:commentRss><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;&lt;strong&gt;&lt;u&gt;Πάρα πολύ καλό&lt;/u&gt;&lt;/strong&gt; παράδειγμα του τι είχα στο μυαλό μου όταν έφτιαξα αυτό το forum!!&amp;nbsp; Είμαι σίγουρος ότι &lt;strong&gt;όλοι&lt;/strong&gt; μας έχουμε κάποια τέτοια θέματα που έχουμε βρει/μάθει κατά καιρούς, και η μεγάλη δύναμη των κοινοτήτων όπως αυτή είναι να μοιραζόμαστε αυτή τη γνώση.&lt;br /&gt;&lt;br /&gt;Ελπίζω σύντομα (όταν βγούμε και live!) να γεμίσει αυτό το forum και να γίνει σημείο αναφοράς όλων μας όταν θέλουμε να βρούμε κάποιο μικρό "διαμαντάκι" κώδικα!&lt;br /&gt;&lt;br /&gt;Patrick&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;</description></item><item><title>Running Totals ή πως να κρατάμε το λογιστή ευτυχισμένο...</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/59.aspx</link><pubDate>Mon, 21 Jun 2004 00:31:36 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:59</guid><dc:creator>gkontog</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/59.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=59</wfw:commentRss><description>&lt;font size="2"&gt; &lt;p&gt;Ας το παραδεχτούμε, μία κατηγορία ανθρώπων έχει μία ερωτική σχέση με τα προοδευτικά υπόλοιπα ή running totals. Δεν υπάρχει εκτύπωση που να μην θέλουν και το σχετικό προοδευτικό υπόλοιπο και μερικές φορές παραπάνω από ένα! Στο ακόλουθο παράδειγμα θα δούμε έναν τρόπο με τον οποίο μπορούμε να τα υπολογίσουμε στον SQL Server με πολύ μικρό κόστος στις επιδόσεις του συστήματος.&lt;/p&gt; &lt;p&gt;Αρχικά δημιουργούμε έναν πίνακα, έστω ο πίνακας Transactions με χρηματικές κινήσεις ανά πελάτη, ο οποίος δημιουργείται με το ακόλουθο query:&lt;/p&gt; &lt;p&gt;CREATE TABLE [dbo].[Transactions] (&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[Trn_ID] [int] IDENTITY (1, 1) NOT NULL ,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[Trn_CustID] [int] NOT NULL ,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[Trn_Date] [datetime] NOT NULL ,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[Trn_Amount] [decimal](18, 2) NOT NULL ) ON [PRIMARY]&lt;/p&gt; &lt;p&gt;GO&lt;/p&gt; &lt;p&gt;ALTER TABLE [dbo].[Transactions] WITH NOCHECK ADD CONSTRAINT [PK_Transactions] PRIMARY KEY CLUSTERED (&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[Trn_ID] ) ON [PRIMARY] &lt;/p&gt; &lt;p&gt;GO&lt;/p&gt; &lt;p&gt;ALTER TABLE [dbo].[Transactions] ADD &lt;br /&gt;CONSTRAINT [DF_Transactions_Trn_CustID] DEFAULT (10) FOR [Trn_CustID],&lt;br /&gt;CONSTRAINT [DF_Transactions_Trn_Date] DEFAULT (getdate()) FOR [Trn_Date],&lt;br /&gt;CONSTRAINT [DF_Transactions_Trn_Amount] DEFAULT (0) FOR [Trn_Amount]&lt;/p&gt; &lt;p&gt;GO&lt;/p&gt; &lt;p&gt;Προσθέτουμε κάποιες εγγραφές στον πίνακα όπου για χάρη του παραδείγματος θεωρούμε ότι όλες αφορούν έναν πελάτη, αυτόν με Trn_CustID = 10. Στη συνέχεια στον query analyzer εκτελούμε τον παρακάτω κώδικα:&lt;/p&gt; &lt;p&gt;DECLARE @RunningTotal decimal(18, 2)&lt;/p&gt; &lt;p&gt;DECLARE @Temp TABLE(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Trn_Date datetime,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Trn_Amount decimal(18, 2),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Trn_RunningTotal decimal(18, 2))&lt;/p&gt; &lt;p&gt;SET NOCOUNT ON&lt;/p&gt; &lt;p&gt;INSERT INTO @Temp&lt;br /&gt;SELECT&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Trn_Date,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Trn_Amount,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&lt;br /&gt;FROM Transactions&lt;br /&gt;ORDER BY Trn_ID&lt;br /&gt;&lt;br /&gt;SET @RunningTotal = 0&lt;/p&gt; &lt;p&gt;UPDATE @Temp&lt;br /&gt;SET @RunningTotal = Trn_RunningTotal = Trn_Amount + @RunningTotal&lt;/p&gt; &lt;p&gt;SELECT * FROM @Temp&lt;/p&gt; &lt;p&gt;Στο τελικό SELECT statement, το πεδίο Trn_RunningTotal περιέχει την τιμή του τρέχοντος υπολοίπου που ήταν και το αρχικό ζητούμενο. Με την τεχνική αυτή μπορούμε επίσης να υπολογίσουμε και άλλα μεγέθη όπως πχ το τρέχον υπόλοιπο ενός είδους σε μία αποθήκη και πως αυτό μεταβάλλετε με τις σχετικές εισαγωγές - εξαγωγές.&lt;/p&gt;&lt;/font&gt;&lt;font face="Arial" size="2"&gt; &lt;p&gt;Κοντογιάννης Γεώργιος&lt;br /&gt;&lt;/font&gt;&lt;font face="Arial" size="2"&gt;MCP, MCSD&lt;/p&gt;&lt;/font&gt;</description></item></channel></rss>