我的查詢甚至不起作用,但希望邏輯能夠通過。基本上我使用 datavault.dimdates_csv 為每個日期/天生成一行。然后每天我都嘗試獲取所有帳戶 ID 并為每個帳戶呼叫一個函式,使用日期和帳戶。
有沒有更好的方法來獲取我的資料?我知道嵌套回圈對 sql 非常有用。
do
$$
declare
date_record record;
account record;
begin
for date_record in select d."date" from datavault.dimdates_csv d
for account in select sad.id from datavault.sat_account_details sad
select datavault.account_active_for_date(date_record , account)
loop
loop
end loop;
end;
$$
uj5u.com熱心網友回復:
很難遵循您的業務邏輯,但在語法方面您的塊需要更正。請注意,d."date"和sad.id是標量(我假設是日期和整數)而不是記錄。
do
$$
declare
running_date date;
running_id integer;
begin
for running_date in select d."date" from datavault.dimdates_csv d loop
for running_id in select sad.id from datavault.sat_account_details sad loop
perform datavault.account_active_for_date(running_date, running_id);
end loop;
end loop;
end;
$$;
據我所知,您正在datavault.account_active_for_date為每對d."date"and呼叫函式sad.id。如果這是真的,那么你可以簡單地
select datavault.account_active_for_date(d."date", sad.id)
from datavault.dimdates_csv d, datavault.sat_account_details sad;
并忽略結果集。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/337786.html
標籤:PostgreSQL
