1 Son düzenleyen, rahmi (17.02.2010 12:26:06)

Konu: sql de tekrarlama

select kasahar.kasa_sira,kasa.adi,kasa.kodu, kasahar.fis_tarih, 
       sum(kasahar.borc) as borc,
       sum(kasahar.alacak) as alacak,
       sum(kasahar.borc-kasahar.alacak) as bakiye
from kasahar
      inner join kasa on kasa.sira = kasahar.kasa_sira
      group by  kasahar.kasa_sira,kasa.adi,kasa.kodu, kasahar.fis_tarih

sorgusa  aynı tarıh de bazı kayıtları tekrarlıyor ...
sorguyu sql query de denıyorum

2

Re: sql de tekrarlama

Tekrarliyor derken, neden tekrarlamamasi gerekiyor? Tarih disinda gruplamaya etki eden 3 sutun daha var. Yoksa yapmak istedigin soyle birsey mi:

SQL
SELECT kasahar.kasa_sira,kasa.adi,kasa.kodu, kasahar.fis_tarih,  kh.borc, kh.alacak, kh.bakiye 

FROM kasahar
      INNER JOIN kasa ON kasa.sira = kasahar.kasa_sira
      INNER JOIN
(SELECT fis_tarih, 
       sum(borc) AS borc,
       sum(alacak) AS alacak,
       sum(borc-alacak) AS bakiye
FROM kasahar
      GROUP BY  fis_tarih) kh ON kasahar.fis_tarih = kh.fis_tarih

3

Re: sql de tekrarlama

kısaca 4 tane kasa var, her kasanın gun gun toplamını almaya calısıyorum.
bazı gunlerde 1 bazı gunlerde 4  satır topluyor oysa hepsi aynı gün.


kasa             tarih                borc       alacak       bakıye
---------     -----------      ------    ---------    ----------
101 kasa      01.01.2010      100.00      40.00          60.00
101 kasa      02.01.2010      120.00      30.00          90.00
201 kasa      01.01.2010      150.00     120.00        30.00

gibi almak istiyorum

4

Re: sql de tekrarlama

Kusura bakma hala problemin ne oldugunu ve ne yapmak istedigini anlamis degilim. Baskasi anlayip cevap verir umarim.

5

Re: sql de tekrarlama

hocam aynı gune aynı kasaya ayit 2 kayıt geliyor
ben 1 kayıt gelmesını ıstıyorum

6

Re: sql de tekrarlama

Bana ornek versen nasil olur. Ayni gunde, ayni kasaya ait iki kayit gelmez (yukaridaki ornekte de gelmemis).

7

Re: sql de tekrarlama

hocam yukardakı ornek benım almak ıstedıgım sonuc
bana gelen sonuc  asagıda aynı tarihde bazı gunler 2 bazı gunler 3 bazılarında 1 kayıt var
oysa hepsının 1 er kayıt olması gerekıyor

kasa             Adı                                                         borc               tarih
-----------------------------------------------------------------------------------------------
100    ANA KASA                                              333,7    2010-02-13 19:01:39.000
100    ANA KASA                                              286,15    2010-02-13 19:04:53.000

100    ANA KASA                                              1242,65    2010-02-14 12:29:57.000

100    ANA KASA                                              1088,4    2010-02-15 08:56:03.000
100    ANA KASA                                              119,7    2010-02-15 13:19:36.000
100    ANA KASA                                              197,3    2010-02-15 13:20:46.000
100    ANA KASA                                              382    2010-02-15 18:24:02.000

100    ANA KASA                                              744,25    2010-02-16 07:23:40.000
100    ANA KASA                                              845,9    2010-02-16 18:50:33.000

100    ANA KASA                                              0    2010-02-17 06:49:07.000
100    ANA KASA                                              500    2010-02-17 06:49:28.000

101    İMRAN CAN                                             337,2    2010-02-13 00:00:00.000
101    İMRAN CAN                                             0    2010-02-13 17:25:02.000
101    İMRAN CAN                                             0    2010-02-13 19:01:39.000

101    İMRAN CAN                                             848,7    2010-02-14 00:00:00.000
101    İMRAN CAN                                             1103,4    2010-02-15 00:00:00.000

8

Re: sql de tekrarlama

Bu arada SQL server'da date tipi yok (2008 oncesi), datetime var. Acaba sen ayni gun derken tarih alanindaki saat,dakika,saniye,milisaniye kismini mi atliyorsun. O zaman isi garantile:

select CONVERT(varchar(10),fis_Tarih,103) as Tarih ...

9 Son düzenleyen, cetinbasoz (17.02.2010 14:33:50)

Re: sql de tekrarlama

Ah oyleymis:)

O zaman dedigim gibi convert() ile degeri cevir. Eger sana sonucta datetime tipi gerekliyse aldigini tekrar cevirebilirsin:

SQL
SELECT Convert( DateTime, CONVERT(varchar(10),fis_Tarih,103), 103 ) AS Tarih, ... 

FROM ...
GROUP BY CONVERT(varchar(10),fis_Tarih,112), ...

10

Re: sql de tekrarlama

ben vfp tarafında date tipini kullanıyorum. datetime kullanmıyorum kesinlikle. öyle olunca da sanırım saat alanı boş kalıyor. çünkü ben hiç böyle bir problemle karşılaşmadım.

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

11

Re: sql de tekrarlama

teşeürler çetin hoca  smile