Merge and aggregate datasets: Difference between revisions

Harbour: minor fix for multiple values
(Harbour: allow multiple INSERT values)
(Harbour: minor fix for multiple values)
Line 800:
 
<syntaxhighlight lang="xbase">
&& SQL-like INSERT command (note the variable number of arguments)
#xcommand INSERT INTO <table> ( <uField1>[, <uFieldN> ] ) VALUE ( <uVal1>[, <uValN> ] ) => ;
<table>->(dbAppend()); <table>-><uField1> := <uVal1> [; <table>-><uFieldN> := <uValN> ]
#xcommand INSERT INTO <table> ( <uFieldList,...> ) VALUES ( <uValList1,...> ) [, ( <uValListN,...> )] => ;
INSERT INTO <table> ( <uFieldList> ) VALUE ( <uValList1> ) ;
[; INSERT INTO <table> ( <uFieldList> ) VALUE ( <uValListN> )]
#xcommand INSERT INTO <table> ( <uField1>[, <uFieldN> ] ) VALUE ( <uVal1>[, <uValN> ] ) => ;
<table>->(dbAppend()); <table>-><uField1> := <uVal1> [; <table>-><uFieldN> := <uValN> ]
 
PROCEDURE Main()
Line 822 ⟶ 821:
vStruct := {{"patient_id", "n", 8, 0}, {"visit_date", "d", 10, 0}, {"score", "n", 8, 1}}
dbCreate( "visit", vStruct,, .T., "visit" )
INSERT INTO visit (patient_id, visit_date, score) VALUESVALUE (2002, ctod("2020-09-10"), 6.8)
INSERT INTO visit (patient_id, visit_date, score) VALUESVALUE (1001, ctod("2020-09-07"), 5.5)
INSERT INTO visit (patient_id, visit_date, score) VALUESVALUE (4004, ctod("2020-09-24"), 8.4)
INSERT INTO visit (patient_id, visit_date) VALUESVALUE (2002, ctod("2020-10-08"))
INSERT INTO visit (patient_id, score) VALUESVALUE (1001, 6.6)
INSERT INTO visit (patient_id, visit_date) VALUESVALUE (3003, ctod("2020-11-12"))
INSERT INTO visit (patient_id, visit_date, score) VALUESVALUE (4004, ctod("2020-11-12"), 7.0)
INSERT INTO visit (patient_id, visit_date, score) VALUESVALUE (1001, ctod("2020-11-19"), 5.3)
INDEX ON patient_id TO visit_id
 
Line 847 ⟶ 846:
ENDDO
INSERT INTO report (patient_id, n, sum_score, avg_score, max_date) ;
VALUESVALUE (xCurId, aAgg[1], aAgg[2], aAgg[2]/aAgg[1], aAgg[3])
ENDDO
 
136

edits