Re: FW: Stalled post to pgsql-tr-genel

Lists: pgsql-tr-genel
From: önder ayçiçek <onder_774(at)hotmail(dot)com>
To: "pgsql-tr-genel-owner(at)postgresql(dot)org" <pgsql-tr-genel-owner(at)postgresql(dot)org>
Cc: "pgsql-tr-genel(at)postgresql(dot)org" <pgsql-tr-genel(at)postgresql(dot)org>
Subject: FW: Stalled post to pgsql-tr-genel
Date: 2013-07-31 14:58:48
Message-ID: DUB119-W45B922E400E3B86F281B3FD6570@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-tr-genel

Date: Wed, 31 Jul 2013 14:56:14 +0000
From: pgsql-tr-genel-owner(at)postgresql(dot)org
To: onder_774(at)hotmail(dot)com
Subject: Stalled post to pgsql-tr-genel

Your message to pgsql-tr-genel has been delayed, and requires the approval
of the moderators, for the following reason(s):

The author (=?windows-1254?B?9m5kZXIgYXnnaedlaw==?= <onder_774(at)hotmail(dot)com>)
is not a member of any of the restrict_post groups.

If you do not wish the message to be posted, or have other concerns,
please send a message to the list owners at the following address:
pgsql-tr-genel-owner(at)postgresql(dot)org

--İletilen İleti Eki--
From: onder_774(at)hotmail(dot)com
To: pgsql-tr-genel(at)postgresql(dot)org
Subject: farklı veritabanlarındaki tabloları birleştirerek sorgu çekmek
Date: Wed, 31 Jul 2013 14:56:08 +0000

Merhaba Arkadaşlar

Biz firmamızda uzun bir süredir SQL Server kullanıyoruz. SQL Server 'a alternatif veritabanı olarak PostgreSQL testlerine başladık. Ancak iki farklı veritabanında bulunan tabloları birleştirerek sorgu çalıştıramadık. Bu konuda çözüm önerilerinizi paylaşabilir misiniz.

İyi Çalışmalar

Önder AYÇİÇEK


From: "N(dot) Can KIRIK" <can(at)epati(dot)com(dot)tr>
To: önder ayçiçek <onder_774(at)hotmail(dot)com>
Cc: "pgsql-tr-genel(at)postgresql(dot)org" <pgsql-tr-genel(at)postgresql(dot)org>
Subject: Re: FW: Stalled post to pgsql-tr-genel
Date: 2013-08-01 00:11:08
Message-ID: CAJ1wP5n5nnq2nzrAFDAOvForyWL1Hz2z9Xt=v23gfWtF0eEzcA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-tr-genel

PostgreSQL'de her bir veritabanı ayrı birer servis olarak çalışıyor.

db_link eklentisi ile bağlantı kurabilirsiniz. ama sanıyorum tablolarınızı
ayrı Schema'larda barındırarak işinizi çözebilirsiniz.

*N. Can KIRIK
ePati Bilişim Teknolojileri
http://www.epati.com.tr/*

On Wed, Jul 31, 2013 at 5:58 PM, önder ayçiçek <onder_774(at)hotmail(dot)com>wrote:

>
>
> Date: Wed, 31 Jul 2013 14:56:14 +0000
> From: pgsql-tr-genel-owner(at)postgresql(dot)org
> To: onder_774(at)hotmail(dot)com
> Subject: Stalled post to pgsql-tr-genel
>
> Your message to pgsql-tr-genel has been delayed, and requires the approval
> of the moderators, for the following reason(s):
>
> The author (=?windows-1254?B?9m5kZXIgYXnnaedlaw==?= <onder_774(at)hotmail(dot)com>)
>
> is not a member of any of the restrict_post groups.
>
> If you do not wish the message to be posted, or have other concerns,
> please send a message to the list owners at the following address:
> pgsql-tr-genel-owner(at)postgresql(dot)org
>
>
>
> --İletilen İleti Eki--
> From: onder_774(at)hotmail(dot)com
> To: pgsql-tr-genel(at)postgresql(dot)org
> Subject: farklı veritabanlarındaki tabloları birleştirerek sorgu çekmek
> Date: Wed, 31 Jul 2013 14:56:08 +0000
>
> Merhaba Arkadaşlar
>
> Biz firmamızda uzun bir süredir SQL Server kullanıyoruz. SQL Server 'a
> alternatif veritabanı olarak PostgreSQL testlerine başladık. Ancak iki
> farklı veritabanında bulunan tabloları birleştirerek sorgu çalıştıramadık.
> Bu konuda çözüm önerilerinizi paylaşabilir misiniz.
>
> İyi Çalışmalar
>
> Önder AYÇİÇEK
>


From: Uygar UZUNHASAN <uygaruzunhasan(at)yahoo(dot)com>
To: "pgsql-tr-genel(at)postgresql(dot)org" <pgsql-tr-genel(at)postgresql(dot)org>
Subject: kümülatif toplam sorgusu
Date: 2013-09-09 11:47:27
Message-ID: 1378727247.78316.YahooMailNeo@web160902.mail.bf1.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: Postg무지개 토토SQL

Merhabalar
Çözemediğim bir sorgu tipi var, altta bir özeneğini göstereyim.

tablomuz:

id/ tip/ miktar
1 /x/ 10
2 /x/ 20
3 /x/ -25
4 /x/ -25
5 /x/ 50
6/x/ -40
7 /x/ 60

 
buradan alacağım sonuçta toplamlar hiç sıfırın altına düşmemeli ve ona göre toplanarak gitmeli (olmasıGereken sütunu), ama yapabildiğim sadece sıralı toplam alabilmek şöyleki:

SELECT sum(miktar) over (PARTITION BY tip ORDER BY id) as kalan FROM tablomuz;

id/tip/ miktar/kalan/olmasıGereken

1  /x/     10 /    10 /  10
2  /x/     20 /    30 /   30

3  /x/   -25 /    -5 /    -5

4  /x/   -25 /   -30 /    0

5  /x/    50 /    20 /    50

6  /x/   -40 /   -20 /    10
7  /x/    60 /    40 /    70

Kısaca durumu şöyle özetleyim, pozitif miktarlar alınan siparişi, negatif miktarlar ise teslimatı gösteriyor. Siparişten fazla yapılan teslimatlar, eğer normal bir toplam çalıştırılırsak bir sonraki siparişten düşüyor, halbuki sipariş verilirken önceden fazla gelmiş mallar göz önünde bulundurularak yapılıyor.

Uygar UZUNHASAN


From: "N(dot) Can KIRIK" <can(at)epati(dot)com(dot)tr>
To: Uygar UZUNHASAN <uygaruzunhasan(at)yahoo(dot)com>
Cc: "pgsql-tr-genel(at)postgresql(dot)org" <pgsql-tr-genel(at)postgresql(dot)org>
Subject: Re: [pgsql-tr-genel] kümülatif toplam sorgusu
Date: 2013-09-09 13:16:55
Message-ID: CAJ1wP5=iYAuAdjkAF8SW42oihGfoNfm8KeW47AUV7mLVFMUW_Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-tr-genel

selam,

çeşitli taklalar atarak çözümlenebilir ama şöyle daha kolay bir yöntem var:

madem SUM işimizi görmüyor, o zaman SUM yerine işimizi görecek bir
AGGREGATE hazırlayalım, adı ciciToplam olsun;

önce AGGREGATE'in kendisine gelen her satır toplamı hazırlayacak
fonksiyonunu hazırlayalım: fn_ciciToplam,

CREATE OR REPLACE FUNCTION public."fn_ciciToplam" ( NUMERIC, NUMERIC )
> RETURNS NUMERIC LANGUAGE sql IMMUTABLE STRICT AS $$
> SELECT GREATEST( 0, COALESCE( $1, 0 ) + COALESCE( $2, 0 ) );
> $$;

fonksiyona gelen 2 parametre var, ilki state'i tuyuyor, yani şimdiye kadar
topladığı değerler. ikincisi de her bir satırda gelen değer.

fonksiyonu kullanarak bir AGGREGATE oluşturalım:

> CREATE AGGREGATE "ciciToplam" ( sfunc = "fn_ciciToplam", basetype =
> NUMERIC, stype = NUMERIC );

şimdi de sorgumuzu çalıştıralım:

> WITH
> "tablomuz" AS (
> SELECT
> GENERATE_SERIES( 1, ARRAY_LENGTH( a, 1 ) ) AS "id"
> ,'x'::VARCHAR AS "tip"
> ,UNNEST( a ) AS "miktar"
> FROM
> ( SELECT ARRAY[ 10, 20, -25, -25, 50, -40, 60 ] a ) a
> )
> SELECT
> *
> ,"ciciToplam"( "miktar" ) over "toplam"
> FROM
> "tablomuz" t
> WINDOW
> "toplam" AS ( PARTITION BY "tip" ORDER BY "id" );

kolay gelsin.

*N. Can KIRIK
ePati Bilişim Teknolojileri
http://www.epati.com.tr/*

2013/9/9 Uygar UZUNHASAN <uygaruzunhasan(at)yahoo(dot)com>

> Merhabalar
> Çözemediğim bir sorgu tipi var, altta bir özeneğini göstereyim.
>
> tablomuz:
> id / tip/ miktar
> 1 /x/ 10
> 2 /x/ 20
> 3 /x/ -25
> 4 /x/ -25
> 5 /x/ 50
> 6 /x/ -40
> 7 /x/ 60
>
> buradan alacağım sonuçta toplamlar hiç sıfırın altına düşmemeli ve ona
> göre toplanarak gitmeli (olmasıGereken sütunu), ama yapabildiğim sadece
> sıralı toplam alabilmek şöyleki:
>
> SELECT sum(miktar) over (PARTITION BY tip ORDER BY id) as kalan FROM
> tablomuz;
>
> id /tip/ miktar/kalan/olmasıGereken
> 1 /x/ 10 / 10 / 10
> 2 /x/ 20 / 30 / 30
> 3 /x/ -25 / -5 / -5
> 4 /x/ -25 / -30 / 0
> 5 /x/ 50 / 20 / 50
> 6 /x/ -40 / -20 / 10
> 7 /x/ 60 / 40 / 70
>
> Kısaca durumu şöyle özetleyim, pozitif miktarlar alınan siparişi, negatif
> miktarlar ise teslimatı gösteriyor. Siparişten fazla yapılan teslimatlar,
> eğer normal bir toplam çalıştırılırsak bir sonraki siparişten düşüyor,
> halbuki sipariş verilirken önceden fazla gelmiş mallar göz önünde
> bulundurularak yapılıyor.
>
>
> Uygar UZUNHASAN
>
>


From: Uygar UZUNHASAN <uygaruzunhasan(at)yahoo(dot)com>
To: "N(dot) Can KIRIK" <can(at)epati(dot)com(dot)tr>, "pgsql-tr-genel(at)postgresql(dot)org" <pgsql-tr-genel(at)postgresql(dot)org>
Subject: Yan: [pgsql-tr-genel] Re: [pgsql-tr-genel] kümülatif toplam sorgusu
Date: 2013-09-10 05:49:48
Message-ID: 1378792188.33001.YahooMailNeo@web160906.mail.bf1.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-tr-genel

Teşekkürler gerçekten ilaç gibi geldi. Anladım ki function ve aggregate yazımına çalışmalıyım biraz.

 
Uygar UZUNHASAN

>________________________________
> Kimden: N. Can KIRIK <can(at)epati(dot)com(dot)tr>
>Kime: Uygar UZUNHASAN <uygaruzunhasan(at)yahoo(dot)com>
>Kopya: "pgsql-tr-genel(at)postgresql(dot)org" <pgsql-tr-genel(at)postgresql(dot)org>
>Gönderildiği Tarih: 9 Eylül 2013 16:16 Pazartesi
>Konu: [pgsql-tr-genel] Re: [pgsql-tr-genel] kümülatif toplam sorgusu
>
>
>
>selam,
>
>
>çeşitli taklalar atarak çözümlenebilir ama şöyle daha kolay bir yöntem var:
>
>
>madem SUM işimizi görmüyor, o zaman SUM yerine işimizi görecek bir AGGREGATE hazırlayalım, adı ciciToplam olsun;
>
>
>önce AGGREGATE'in kendisine gelen her satır toplamı hazırlayacak fonksiyonunu hazırlayalım: fn_ciciToplam,
>
>
>CREATE OR REPLACE FUNCTION public."fn_ciciToplam" ( NUMERIC, NUMERIC )
>>RETURNS NUMERIC LANGUAGE sql IMMUTABLE STRICT AS $$
>>        SELECT GREATEST( 0, COALESCE( $1, 0 ) + COALESCE( $2, 0 ) );
>>$$;
>
>
>fonksiyona gelen 2 parametre var, ilki state'i tuyuyor, yani şimdiye kadar topladığı değerler. ikincisi de her bir satırda gelen değer.
>
>
>
>
>fonksiyonu kullanarak bir AGGREGATE oluşturalım:
>CREATE AGGREGATE "ciciToplam" ( sfunc = "fn_ciciToplam", basetype = NUMERIC, stype = NUMERIC );
>
>
>
>
>
>
>şimdi de sorgumuzu çalıştıralım:
>WITH
>>"tablomuz" AS (
>>SELECT
>>GENERATE_SERIES( 1, ARRAY_LENGTH( a, 1 ) ) AS "id"
>>,'x'::VARCHAR AS "tip"
>>,UNNEST( a ) AS "miktar"
>>FROM
>>( SELECT ARRAY[ 10, 20, -25, -25, 50, -40, 60 ] a ) a
>>)
>>SELECT
>> *
>>,"ciciToplam"( "miktar" ) over "toplam"
>>FROM
>>"tablomuz" t
>>WINDOW
>>"toplam" AS ( PARTITION BY "tip" ORDER BY "id" );
>
>
>kolay gelsin.
>
>
>
>
>N. Can KIRIK
>ePati Bilişim Teknolojileri
>http://www.epati.com.tr/
>
>
>2013/9/9 Uygar UZUNHASAN <uygaruzunhasan(at)yahoo(dot)com>
>
>Merhabalar
>>Çözemediğim bir sorgu tipi var, altta bir özeneğini göstereyim.
>>
>>
>>tablomuz:
>>
>>id/ tip/ miktar
>>1 /x/ 10
>>2 /x/ 20
>>3 /x/ -25
>>4 /x/ -25
>>5 /x/ 50
>>6 /x/ -40
>>7 /x/ 60
>>
>> 
>>buradan alacağım sonuçta toplamlar hiç sıfırın altına düşmemeli ve ona göre toplanarak gitmeli (olmasıGereken sütunu), ama yapabildiğim sadece sıralı toplam alabilmek şöyleki:
>>
>>SELECT sum(miktar) over (PARTITION BY tip ORDER BY id) as kalan FROM tablomuz;
>>
>>
>>id/tip/ miktar/kalan/olmasıGereken
>>
>>1  /x/     10 /    10 /  10
>>2  /x/     20 /    30 /   30
>>
>>3  /x/   -25 /    -5 /    -5
>>
>>4  /x/   -25 /   -30 /    0
>>
>>5  /x/    50 /    20 /    50
>>
>>6  /x/   -40 /   -20 /    10
>>7  /x/    60 /    40 /    70
>>
>>Kısaca durumu şöyle özetleyim, pozitif miktarlar alınan siparişi, negatif miktarlar ise teslimatı gösteriyor. Siparişten fazla yapılan teslimatlar, eğer normal bir toplam çalıştırılırsak bir sonraki siparişten düşüyor, halbuki sipariş verilirken önceden fazla gelmiş mallar göz önünde bulundurularak yapılıyor.
>>
>>
>>Uygar UZUNHASAN
>>
>
>
>