PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

एक पंक्ति में शामिल होने की सीमा

SELECT (count(*) * sum(s."price")) AS amount
     , 'rma'       AS "creditType"
     , c."company" AS "client"
     , c.id        AS "ClientId"
     , r.* 
FROM   "Rmas"            r
JOIN   "EsnsRmas"        er ON er."RmaId" = r."id"
JOIN   "Esns"            e  ON e.id = er."EsnId"
JOIN  (
   SELECT DISTINCT ON ("EsnId") *
   FROM   "EsnsSalesOrderItems"
   ORDER  BY "EsnId", "createdAt" DESC
   )                     es ON es."EsnId" = e."id"
JOIN   "SalesOrderItems" s  ON s."id" = es."SalesOrderItemId"
JOIN   "Clients"         c  ON c."id" = r."ClientId"
WHERE  r."credited" = FALSE
AND    r."verifyStatus" IS NOT NULL 
GROUP  BY c.id, r.id;

प्रश्न में आपकी क्वेरी में एक अन्य समुच्चय पर एक अवैध समुच्चय है:

sum((select count(*) as itemCount) * "SalesOrderItems"."price") as amount

सरलीकृत और कानूनी सिंटैक्स में परिवर्तित:

(count(*) * sum(s."price")) AS amount

लेकिन क्या आप वाकई प्रति समूह की संख्या से गुणा करना चाहते हैं?

मैं "EsnsSalesOrderItems" . में प्रति समूह एकल पंक्ति पुनर्प्राप्त करता हूं DISTINCT ON . के साथ . विस्तृत विवरण:

मैंने मानव आंखों के लिए क्वेरी को आसान बनाने के लिए टेबल उपनाम और स्वरूपण भी जोड़ा। अगर आप कैमल केस से बच सकते हैं तो आप सभी दोहरे उद्धरण चिह्नों से छुटकारा पा सकता है दृश्य को धूमिल करना।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक गतिशील क्रॉसस्टैब क्वेरी निष्पादित करें

  2. क्यों PG::UniqueViolation:ERROR:डुप्लिकेट कुंजी मान अद्वितीय बाधा का उल्लंघन करता है?

  3. क्या PostgreSQL अपने pl* दुभाषियों को लगातार लोड रखता है?

  4. पर्यवेक्षक पदानुक्रम की सूची प्राप्त करने के लिए SQL क्वेरी। कर्मचारी -> पर्यवेक्षक -> पर्यवेक्षक

  5. क्या गैर-अद्वितीय विशेषता पर सॉर्ट करने पर PostgreSQL ऑर्डर पूरी तरह से गारंटीकृत है?