मेरे पास निम्नलिखित संरचना है:एसक्यूएल: एक मान का योग लेकिन केवल अलग आईडी के लिए - सशर्त राशि?
टाइप 1 और टाइप 2 की कई घटनाओं के साथ दिन, जहां टाइप 1 और टाइप 2 में उनके संबंधित दिनों में विदेशी कुंजी होती है। टाइप 2 में भी अवधि है।
अब मैं सभी टाइप 1 घटनाओं, सभी टाइप 2 घटनाओं और टाइप 2 अवधि के योग को गिनना चाहता हूं।
उदाहरण डेटा:
दिन:
ID = 1 | Date = yesterday | ...
Typ1:
ID = 1 | FK_DAY = 1 | ...
ID = 2 | FK_DAY = 1 | ...
Typ2:
ID = 1 | FK_DAY = 1 | duration = 10
ID = 2 | FK_DAY = 1 | duration = 20
मैं अब परिणाम हैं:
Day.ID = 1 | countTyp1 = 2 | countTyp2 = 2 | sumDurationTyp2 = 30
मेरी समस्या योग है, मुझे "विशिष्ट टाइप 2.आईडी के लिए योग" की आवश्यकता है ... क्या किसी को इसे हल करने का कोई तरीका पता है?
मैं निम्नलिखित की तरह कुछ का उपयोग कर रहा है, लेकिन निश्चित रूप से इस तरह मैं चाहता हूँ काम नहीं करता:
SELECT day.id,
count(DISTINCT typ1.id),
count(DISTINCT typ2.id),
sum(duration) AS duration
FROM days
LEFT JOIN typ
ON day.id = typ1.id
LEFT JOIN typ2
ON day.id = typ2.id
GROUP BY day.id;
आरडीबीएमएस और क्या संस्करण? – Tobsey