نمایش نتایج 1 تا 9 از 9

نام تاپیک: نشان دادن مقادیر تکراری از یک جدول

  1. #1

    نشان دادن مقادیر تکراری از یک جدول

    بسم الله الرحمن الرحیم
    دوستان سلام
    من یک کد SQL می خواهم که مقادیر تکراری را در یک جدول نشان دهد.
    به عنوان مثال مشتریانی که بیش از یکبار در یک محدوده زمانی خاص مراجعه داشته اند نشان داده شود.
    متشکرم

  2. #2

    نقل قول: نشان دادن مقادیر تکراری از یک جدول

    سلام.
    دوست عزيز مشخصه ي اين مشتريان چيست؟ مثلاً كد اشتراكي چيزي ندارند؟
    اما چيزي كه بايد دقت كنيد اين هست كه طراحي 1 ديتابيس خوب برنامه ي شما رو بهتر و كد نويسيتونو آسونتر ميكنه. طبيعي ترين كار و عرف ترينش اينه كه هر مشتري براي بار اول بايد عضويت ايجاد كنه و كد اشتراك بگيره . خوب وقتي اينكارو ميكنيد ميتونيد جدول خريد هم اضافه كنيد كه در واقع كارشما آسونتر ميشه و ميتونيد كدهايي كه در جدول خريد بيش از 1بار ذخيره شدن با 1دستور ساده ي select بياريد.
    موفق باشيد

  3. #3

    نقل قول: نشان دادن مقادیر تکراری از یک جدول

    بسم الله الرحمن الرحیم
    دوست عزیز سلام از پاسخ شما متشکرم

    مشخصات مشتریان در یک جدول بطور خودکار ثبت می شود ولی چون تعداد مشتریان زیاد است نمی توان تک تک بررسی کرد و ما هم نمی دانیم کدام مشتری بیش تر از یکبار مراجعه کرده است که همان را استخراج کنیم! اگر می دانستیم که مشکل حل بود.
    ما در این جدول می خواهیم بدون دادن اطلاعات خاصی از یک مشتری رکوردهای تکراری را استخراج کنیم
    با تقدیم احترام

  4. #4

    نقل قول: نشان دادن مقادیر تکراری از یک جدول

    ضمن عرض سلام فكر ميكنم كدهاي زير دو جواب شما باشد من هم خودم بارها از هر دوي اين روشها استفاده كردم و جواب گرفتم :
    روش اول :
    SELECT * FROM QUERY1 Q1 WHERE SERIALNO IN ( SELECT SERIALNO FROM QUERY2 Q2 WHERE Q1.ID <> Q2.ID AND Q1.SERIALNO = Q2.SERIALNO)
    كه درواقع QUERY1 , QUERY2 دو ارجاع مختلف به يك فايل هستند مثلا" فايل پرسنلي شما
    و فيلدهاي SERIALNO و ID دو فيلد فرضي از بانك هستند يكي يونيك و غير قابل تكرار و ديگري تكراري
    و اما روش دوم :
    كه شماره سريالهاي ركوردهايي كه بيش از يكبار در بانك اطلاعاتي وجود داشته باشند را (برحسب امكان تكراري بودن شماره سريال (فيلد فرضي ما)) به شما ميدهد .
    SELECT SERIALNO FROM QUERY1 GROUP BY SERIALNO HAVING (COUNT(*) > 1)

  5. #5

    نقل قول: نشان دادن مقادیر تکراری از یک جدول

    درود :
    با تشکر BATIS عزیز برای راه حل جالبش و کسب اجازه برای یه دستکاری کوچیک در کدهاش =>
    " (شناسه خریدار : Cust_ID ) "
    روش اولشون برای نمایش سطر های تکراری از یک خریدار =>

    SELECT * FROM Table1
    WHERE (Cust_ID IN (SELECT Cust_ID
    FROM Table1 GROUP BY Cust_ID
    HAVING (COUNT(Cust_ID) > 1)))


    روش دومشون برای نمایش شماره خریدار و تعداد خرید اون اگر بیش از یک بار خرید داشته =>

    SELECT Cust_ID, COUNT(Cust_ID) AS Expr1
    FROM Table1 GROUP BY Cust_ID
    HAVING (COUNT(Cust_ID) > 1)


    فکر خوش .

  6. #6
    کاربر جدید
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    آمل
    پست
    17

    نقل قول: نشان دادن مقادیر تکراری از یک جدول

    ...select distinct code_kala from kala where

  7. #7
    کاربر دائمی
    تاریخ عضویت
    اسفند 1388
    محل زندگی
    يك جاي خوش آب و هوا و سالم
    پست
    112

    نقل قول: نشان دادن مقادیر تکراری از یک جدول


    Select Count(Id) As Cnt From T1
    Where F1=:F1 And F2=:F2 And F3=:F3 ...
    .
    .
    .

    IF FieldByName('Cnt').Asinteger > 1 Then
    .... ركورد تكراري است

  8. #8

    نقل قول: نشان دادن مقادیر تکراری از یک جدول

    بسم الله الرحمن الرحیم
    با سلام
    من می خواهم این دستور بتواند این عمل را در یک محدوده زمانی خاص اعمال کند و کد را تغییر دادم ولی دستور درست کار نمی کند!
    علت چیست؟
    لطفاً راهنمایی نمائید.
    متشکرم
    SELECT * FROM Table1
    WHERE (Cust_ID IN (SELECT Cust_ID
    FROM Table1 GROUP BY Cust_ID
    (HAVING (COUNT(Cust_ID) > 1))) and (date like 1388/10/10

  9. #9

    نقل قول: نشان دادن مقادیر تکراری از یک جدول

    درود :
    (HAVING (COUNT(Cust_ID) > 1))) and (date like 1388/10/10
    این دستور بنا به اینکه شما فقط Cust_ID رو دستور انتخاب دادی اشتباه است .
    استفاده از دستورات Group By , Having دارای قانون است مبنی بر این که فقط ستونی که در دستور انتخاب هست در دستور Group و Having باید باشد .

    می تونی از کد زیر برای کارت استفاده کنی >

    SELECT * FROM Table1
    WHERE (Cust_ID IN (SELECT Cust_ID FROM Table1
    GROUP BY Cust_ID HAVING COUNT(Cust_ID) > 1))
    AND (tarikh LIKE '1388/01/01')


    یا اینکه در همون کد خودت از دستور WHERE برای تاریخ استفاده کنی .

    فکر خوش .

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •