Hallo, habe mal eine Frage zu einem Query
Nehmen wir mal an ich habe eine Tabelle mit einer eindeutigen ID, einer GruppenID und einem Wert.
Nun brauche ich ein SQL, welches mit die Werte zusammenrechnet, allerdings auch nur für die GruppenID.
SQL-Anweisung
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
| select pr_actividadesdet.item, pr_otdet.id, pr_actividades.unidades unidades_actividad,
pr_otstatus.id_subot, pr_actividadesdet.unidades unidades_item, (SELECT SUM(Entregar) FROM PR_OTStatus WHERE ID_DET = PR_OTDet.id) Entregado, (SELECT SUM(Instalado) FROM PR_OTStatus WHERE ID_DET = PR_OTDet.id) Instalado, (SELECT SUM(Verificado) FROM PR_OTStatus WHERE ID_DET = PR_OTDet.id) Verificado, (SELECT SUM(Devuelto) FROM PR_OTStatus WHERE ID_DET = PR_OTDet.id) Devuelto, (SELECT SUM(Desperdicio) FROM PR_OTStatus WHERE ID_DET = PR_OTDet.id) Desperdicio, (SELECT SUM(Sobrante) FROM PR_OTStatus WHERE ID_DET = PR_OTDet.id) Sobrante, (SELECT SUM(Otros) FROM PR_OTStatus WHERE ID_DET = PR_OTDet.id) Otros, pr_actividades.start_date, pr_actividades.end_date, item.descripcion, (pr_actividadesdet.unidades * pr_actividades.unidades) Unidades_Total, pr_otdet.id_ot, ((pr_actividadesdet.unidades * pr_actividades.unidades) - pr_otdet.entregado + pr_otdet.devuelto) Por_Entregar from item inner join pr_actividadesdet on (item.item = pr_actividadesdet.item) inner join pr_otdet on (pr_actividadesdet.id = pr_otdet.id_act) inner join pr_actividades on (pr_actividadesdet.id_actividad = pr_actividades.id) left join pr_otstatus on (pr_otstatus.id_det = pr_otdet.id ) |
Mir geht es speziell um die Sub-SELECT statements. Im moment rechnen sie das für die ganze Tabelle zusammen, welche das Kriterium "WHERE ID_DET = PR_OTDet.id" erfüllen. Ich bräuchte aber noch, dass man es nach
pr_otstatus.id_subot filter kann, welches im WHERE des kompletten SELECT angegeben wird (das gepostete SELECT ist ein VIEW in meiner DB).
Geht es überhaupt ? Und wenn ja, wie ?
Danke schonmal
Moderiert von
Narses: Beiträge zusammengefasstAchja, wie gesagt, das Ganze ist eim View, V_PR_OTData und ich will es wie folgt aufrufen :
für alle Daten unabhängig von ID_SubOT :
SQL-Anweisung
1:
| SELECT * FROM V_PR_OTData WHERE ID_OTE = :ID_OTE |
und für die Werte nur von ID_SubOT :
SQL-Anweisung
1:
| SELECT * FROM V_PR_OTData WHERE ID_OTE = :ID_OTE AND ID_SubOT = :ID_SubOT |
Diese ID_SubOT muss also irgendwie oben in die Sub-SELECTs einfliessen. Wenn es möglich ist

"Ich bin bekannt für meine Ironie. Aber auf den Gedanken, im Hafen von New York eine Freiheitsstatue zu errichten, wäre selbst ich nicht gekommen." - George Bernhard Shaw